Error: Expression 'undefined' used with directive is non-assignable
尝试从我的指令更改控制器范围变量时,我遇到了上述错误。指令:
<mydir selUser="selectedUser"></mydir>
我的控制器:
angular.module('myApp')
.controller('MainCtrl', function ($scope, $http) {
$scope.selectedUser = {};
$scope.$watch('selectedUser', function() {
console.log('user changed');
});
});
最后我的指示:
angular.module('myApp')
.directive('mydir', function() {
return {
restrict: 'E',
templateUrl: 'app/mydir/mydir.html',
scope: {
selUser: '='
},
link: function(scope) {
scope.changeUser = function(user) {
console.log('user: ' + JSON.stringify(user));
scope.selUser = user;
};
}
};
});
如您所见,我试图在单击按钮时更改父(控制器)范围内的所选用户。但随后点击发生,错误就会抛出。
我已经看到了几种如何在指令中定义范围的组合以及在声明指令的html上,但这些组合似乎都不起作用。还有其他我想念的东西吗?