获取注入指令中的控制范围值更改?

时间:2018-03-23 11:33:56

标签: angularjs angularjs-directive angularjs-scope

我有自己的指令myDir。我想将它导入我的角度样本,我想在我的myDir中观察我的样本边值。

 <div ng-controller="MyCtrl">
      <my-dir values='val' ></my-dir>
      </div>
       angular.module('myApp', ['demo'])
            .controller('MyCtrl', function ($scope) {
        $scope.click =function (args)
            {
                $scope.val = "changes".
            }
            })

我的另一个模块如下所示

    var demo = angular.module('demo', []);
      demo.directive('myDir', function($parse) {
      return {
            restrict: "E",

        template: 'template',
        link:
                function(scope, element, attrs){
               scope.$watch(attrs["val"], fucntion(newval,oldval){console.log(newval,oldval)})
            }
}
});

在上面我无法控制日志我的值更改。我想在 myDir 指令

中看到 val 更改

1 个答案:

答案 0 :(得分:0)

您拼错了功能。另外,请勿使用reserved这样的词语,例如“&#39; new&#39;作为一个参数。

替换

fucntion(new,old){console.log(new,old)}

使用

function(n,o){console.log(n,o)}

然后, 您还需要正确地将范围中的值传递给指令,然后在监视中深入检查(阅读更多here

var demo = angular.module('demo', []);
      demo.directive('myDir', function($parse) {
      return {
        restrict: "E",
        scope: {
            val: '='
        },
        template: 'template',
        link:
            function(scope, element, attrs){
           scope.$watch('val', function(n,o){console.log(n,o)}, true)
        }
    }
});