0

我有一个角度分量:

module.exports = {
    bindings: {
        vulnerability: '<',
    },
    controller: ['$scope', function($scope){
       //want to get value of vulnerability from above
       $scope.vulnerability  // doesn't work
    }],
};

我在 ng-repeat 中引用

<div ng-repeat="vulnerability in vulnerabilities" class="vulnerability-item">
   <vulnerability-item  vulnerability="vulnerability"> </vulnerability-item>
</div>

一旦指令被调用,漏洞的价值就不会改变,所以我不需要观察那个值,只是在它被设置后引用它。

我确实$scope.$watch在属性上放了一个,只是为了看看它是否有效并且它确实触发了,但我在手表的处理程序中看不到新的或旧的值,所以无论如何它对我没有帮助。

我试过了$scope.vulnerability$ctrl.vulnerability这就是我在指令模板中引用该属性的方式,但都没有奏效。如何获取传入的绑定值?

添加此手表:

    $scope.$watch('vulnerability', function (oldV, newV) {
        console.log('old', oldV)
        console.log('new', newV)
    })

我在控制台中为组件的每个实例得到一个new undefined和,尽管如果我更改为它仍然会为每个组件触发一次日志。old undefined$scope.$watch('vulnerability'$scope.$watch('nonsense')

4

1 回答 1

1

如果不应该更改该值,则应绑定一次,vulnerability="::vulnerability". 这为问题提供了上下文(并且还节省了一些优化时间)。

在这种情况下$onInit,可以使用钩子:

...
controller: function() {
   this.$onInit = function () {
     this.vulnerability
   }
},
于 2016-11-29T03:14:26.370 回答