AngularJS指令属性的观察

20

如何使用AngularJS监视自定义指令上的属性,以便接受要绑定的Angular值。

目前我的进展如下:

<tile title="Sleep Duration" data-value="{{sleepHistory.averageSleepTime}}"/>

app.directive('tile', [function() {
    return {
        restrict: 'E',
        link: function(scope, element, attrs) {
            var title = attrs.title;

            attrs.$observe('dataValue', function(val) {
                var data = val;

                console.log(data);

                var dom =
                    "<div>" +
                    "<p>" + title + "</p>" +
                    "<p>" + data + "</p>" +
                    "</div";

                $(element).append($(dom.trim()));
            });
        }
    };
}]);

但观察到的值返回为未定义

3个回答

42

9

只需关注value而不是dataValue

attrs.$observe('value', function (val)  { ...

0

你也可以为你的指令使用一个新属性,而不是data-value

<tile title="Sleep Duration"  your-new-attribute={{sleepHistory.averageSleepTime}}" />

attrs.$observe('yourNewAttribute', function (newValue, oldValue) {
    if (newValue && newValue !== oldValue) {
        // ...
    }
});

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接