Angular指令和控制器2路绑定

时间:2015-04-21 00:23:35

标签: javascript angularjs

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上,但这些组合似乎都不起作用。还有其他我想念的东西吗?

0 个答案:

没有答案