20

バインドする角度値を受け入れるために、どのようにAngular jsがカスタムディレクティブの属性を監視できますか

これが私がこれまでに持っているものです:

<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()));
            });
        }
    };
}]);

しかし、観測された値は未定義として戻ってきます

4

3 に答える 3

42

https://docs.angularjs.org/api/ng/type/$compile.directive.Attributesから:

これらはすべて、Angular では同等のものとして扱われます。

<span ng:bind="a" ng-bind="a" data-ng-bind="a" x-ng-bind="a">

したがって、属性は次のようにdata-value正規化されますvalue

だから、これはあなたが望むものです:

attrs.$observe('value', function(val) {
于 2013-09-11T18:55:59.307 に答える
9

valueの代わりに を見てdataValueください。

attrs.$observe('value', function (val)  { ...
于 2013-09-11T18:54:52.873 に答える