簡體   English   中英

在數據獲取之前執行的角度指令

[英]angular directive executing before data fetch

我現在有一個指令有問題,而當指令嘗試訪問它們時,未設置在父控制器中設置的某些范圍值。 這是因為在AJAX調用返回任何數據之前調用了該指令。 是否可以讓我的指令在繼續設置之前等待該數據被設置?

angular.module('vt.directives', [])
    .directive('personType', [function () {
    return {
        restrict: 'A',
        replace: true,
        scope: {
            data: '='
        },
        template: '<div class="{{data.property}}"</div>',
        link: function (scope, elm, attrs) {
            console.log(scope.personType);

        }
    };
}]);

<div ng-controller="parentcontroller">
  <div personType data="jsonobject"></div>
</div>

在這里,我的parentcontroller正在從服務中獲取數據並傳遞給persontype指令,但是persontype指令沒有等到jsonobject從服務中獲取后才引起很多問題。

如果要將數據放在scope,personType上,則必須將數據分配給personType指令本身

<div personType="jsonobject"></div>

並通過訪問

console.log( $parse(attrs.personType)(scope)); 

而且,如果要在AJAX調用后加載此數據,則可以從服務中$ emit出數據,並通過$ on方法在指令中訪問它們。

可能對您有幫助:)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM