scope。$ watch与指令一起返回未定义的属性值

mrb398

我正在尝试设置指令

project.directive('recordView', function () {
    return {
        restrict: 'E',
        scope: {
            recordId: '@'
        },
        templateUrl: '/scripts/templates/record-view-template.html',
        controller: 'RecordViewController',
        link: function (scope, element, attrs) {
            scope.$watch('recordId', function (value) {
                console.log(value);
                if (value) {
                    scope.resp.RecordId = 0
                    scope.resp.RecordId = eval('(' + value + ')');
                    alert(scope.resp.RecordId);
                }
            });
        }
    }
});

我使用这样的指令

<record-view recordId="{{currentRecordId}}"></record-view>

在我看来,将{{currentRecordId}}抛出的值证明设置了正确的值,并指示了作用域。当记录id属性更改时,$ watch会正确触发,但是console.log的值却未定义。

我不确定我在这里缺少什么。我不知道这是否重要,但是该指令正在单独的指令中使用。

mrb398

事实证明,角度不喜欢我这样叫我的指令

<record-view recordId="{{currentRecordId}}"></record-view>

相反,它要我这样称呼它

<record-view record-id="{{currentRecordId}}"></record-view>

我认为规范化将允许我像以前一样使用它,但是显然并非如此

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章