我这里有我的javascript代码:
define(['controllers/controllers', 'services/alerts'], function(module) {
'use strict';
return module.controller('alerts', [
'$scope', '$http', 'alerts', function($scope, $http, alerts) {
console.log('alerts controller initialized');
$scope.settings = {};
return $scope.submit = function() {
$scope.busy = true;
console.log('scope', $scope);
return console.log('data', $scope.data);
};
}
]);
});
我尝试记录$scope.data
的内容,我希望其中包含ng-model
=>的值data.followers
但始终显示未定义但当我尝试记录$scope
的值内容时,$scope.data
存在。如图所示:
我尝试初始化$scope.data
,但在更改ng-model
=>的值后,它将始终返回一个空数组data.followers
。这是我初始化ng-model
时的代码(以haml为单位):
%input{:type => "checkbox", "ng-checked" => "settings.#{$key}", "ng-model" => "data.#{$key}", "ng-true-value" => "true", "ng-false-value" => "false", "ng-click" => "submit()"}
有什么想法吗?
已经解决了这个问题。我所做的就是初始化$ scope.data并在ng-checked中使用数据。#{$ key}。这让我陷入困境。 Noob角度程序员在这里。
答案 0 :(得分:0)
延迟加载Angular组件时,需要使用$scope.$apply()
。当组件使用Require或其他方法延迟加载时,函数将注册到Angular的$digest
循环之外的范围内。使用$scope.$apply()
会使$digest
知道您的绑定,并将它们带入应用实例。
您可能还需要使用module.register.controller
代替module.controller
define(['controllers/controllers', 'services/alerts'], function(module) {
'use strict';
return module.register.controller('alerts', [
'$scope', '$http', 'alerts', function($scope, $http, alerts) {
console.log('alerts controller initialized');
$scope.settings = {};
return $scope.submit = function() {
$scope.busy = true;
console.log('scope', $scope);
return console.log('data', $scope.data);
};
$scope.$apply();
}
]);