如何使用 Angularjs 传递数据
How to pass data with Angularjs
如何将数据从控制器传递到组件以显示给用户?
app.js
(function(angular) {
'use strict';
angular.module('app', []).controller('MainCtrl', function MainCtrl($scope, $http) {
$http({
method: 'GET',
url: '/team',
}).then(function successCallback(response) {
console.log(response.data);
this.teams = response.data;
$scope.teams = response.data;
// var keys = Object.keys($scope.agendaEventData);
// $scope.eventslength = keys.length;
}, function errorCallback(response) {
});
}).config(['$httpProvider', function($httpProvider) {
$httpProvider.defaults.headers.common["X-Requested-With"] = 'XMLHttpRequest';
}]);
})(window.angular);
组件
(function(angular) {
'use strict';
angular.module('app').component('bringTeamToEvent', {
templateUrl: '/assets/ng/app/team/bringTeamToEvent.html',
bindings: {
teams: '<'
},
});
})(window.angular);
模板
{{$ctrl.teams}}
{{teams}}
数据来自 api 没问题,我不明白让它工作的复杂性。
向 https://docs.angularjs.org/tutorial/step_13 学习
和 https://docs.angularjs.org/guide/component#!
在 this.teams
上设置数据是正确的,并且像 $ctrl.teams
一样访问它也是正确的。这里的问题是您的 $http
回调函数正在注入它们自己的函数上下文,因此 this
不会引用该组件。
因此,使用 arrow functions 作为回调函数通常是个好习惯:
$http({
method: 'GET',
url: '/team',
}).then(response => {
this.teams = response.data;
}, response => {
});
这是一个demo
如何将数据从控制器传递到组件以显示给用户?
app.js
(function(angular) {
'use strict';
angular.module('app', []).controller('MainCtrl', function MainCtrl($scope, $http) {
$http({
method: 'GET',
url: '/team',
}).then(function successCallback(response) {
console.log(response.data);
this.teams = response.data;
$scope.teams = response.data;
// var keys = Object.keys($scope.agendaEventData);
// $scope.eventslength = keys.length;
}, function errorCallback(response) {
});
}).config(['$httpProvider', function($httpProvider) {
$httpProvider.defaults.headers.common["X-Requested-With"] = 'XMLHttpRequest';
}]);
})(window.angular);
组件
(function(angular) {
'use strict';
angular.module('app').component('bringTeamToEvent', {
templateUrl: '/assets/ng/app/team/bringTeamToEvent.html',
bindings: {
teams: '<'
},
});
})(window.angular);
模板
{{$ctrl.teams}}
{{teams}}
数据来自 api 没问题,我不明白让它工作的复杂性。 向 https://docs.angularjs.org/tutorial/step_13 学习 和 https://docs.angularjs.org/guide/component#!
在 this.teams
上设置数据是正确的,并且像 $ctrl.teams
一样访问它也是正确的。这里的问题是您的 $http
回调函数正在注入它们自己的函数上下文,因此 this
不会引用该组件。
因此,使用 arrow functions 作为回调函数通常是个好习惯:
$http({
method: 'GET',
url: '/team',
}).then(response => {
this.teams = response.data;
}, response => {
});
这是一个demo