1

これ回せるかな

[{
  compType: "special-label",
  style: {
  left: 10,
  top: 10
 },
 {
  compType: "special-image",
  style: {
  left: 10,
  top: 10
 }
 ]

これに:

 <special-label element="element"><special-label>

2 つのディレクティブを使用してみました。

  1. ラッパー ディレクティブとしての special-element
  2. 特定のディレクティブとしての特別なラベル/特別なイメージ

    <div class="element" ng-repeat="element in elements">
    <wix-element element="element" compType="{{element.compType}}" test="5">
    
    </wix-element>
       </div>
    

ただし、特別な要素のテンプレート メソッドで compType にアクセスしようとすると、まだ解析されていません。

それを機能させるために何をすべきか?

4

2 に答える 2

0

これには scope.$observe を使用できます。

app.directive('wixElement', function () {
    // these should maybe be defined in a factory
    var SPECIAL_LABEL = 0,
        SPECIAL_IMAGE = 1;
    return {
        restrict: 'A',
        link: function (scope, element, attrs) {
            // observe changes in attribute - could also be scope.$watch
            attrs.$observe('compType', function (value) {
                switch (value) {
                    case SPECIAL_LABEL:
                        // do stuff for special-label
                        break;
                    case SPECIAL_IMAGE:
                        // do stuff for special-image
                        break;
                }
            });
        }
    });

また、ここで私の答えを見てください: https://stackoverflow.com/a/17087331/1008519 コントローラーへの変数の受け渡しを無視し、ディレクティブで変数にアクセスする方法を見てください。

ただし、オブジェクトでスタイルを渡したい理由がわかりません。クラスに基づいて要素のスタイルを設定するべきではありませんか?

于 2013-11-10T23:43:33.590 に答える