1

最終的に要素の属性から HighCharts グラフを作成する angularjs ディレクティブを作成できるようにしたいと考えています。ディレクティブは機能していますが、動的に設定された属性が未定義を返します。最後に、要素のすべての属性をパラメーターとして $http リクエストに送信する必要があります。

私は $observe メソッドを使用しようとしましたが、機能していないようです。また、属性を事前定義されていないものにしたいと考えています。

このフィドルを参照してください: http://jsfiddle.net/F52SF/および以下のディレクティブのコード:

myApp.directive('example', function () {
    return {
        restrict: 'A',
        link: function (scope, element, attrs) {
            console.log('Log1:', attrs.exampleId);
            attrs.$observe('exampleAttr', function () {
                console.log('Log2:', attrs.exampleId);
            });

            var data = {};
            for(var i in attrs){
                var t = Object.prototype.toString.call( attrs[i] );
                if(t !== '[object Object]' && t != '[object Function]') data[i] = attrs[i];
            } 
            console.log(data);
        }
    }
});
4

1 に答える 1

2

あなたのコード例には、いくつかの間違い/改善があります:

  1. exampleAttr と exampleId を混在させています
  2. $observe 関数のコールバックに渡された値を読み取る方が良いです:

    attrs.$observe('exampleAttr', function(newValue) {
        /* use newValue here instead of attrs.exampleAttr */
    });
    

ここにフィドルが働いています:http://jsfiddle.net/F52SF/1/

于 2013-01-27T14:55:13.343 に答える