2017-05-24 60 views
0

如果ng-if =「item.value」返回true,我想從中調用控制器中存在的函數。下面是摘錄當ng-if =「variable」爲真時尋找調用控制器函數

<td class="rsp-p1"> 
     <span ng-if="item.result"> 
      {$ ctrl.hw_interface $}</span> 
</td> 

所以在這裏,我要尋找的流量如果異常,如果返回true調用一個函數driverInfo(),然後將該功能設置hw_interface變量裏面我想要的價值,因此我顯示該以上代碼片段的值爲$ strl.hw_interface 但我無法找到適當的方法來做到這一點。我嘗試了ng-init()。您的輸入非常讚賞:)

這裏是我的angularjs代碼

function driverInfo() { 
    ironic.driverInfo(ctrl.driver,'power').then(function(response){ 
    alert(response) 
    ctrl.hw_interface = response; 
    }); 
} 

(此功能的簽名,現在沒有一個參數,一旦我搞清楚打電話給我將更新簽名的方式。)

+0

您可以發佈您AngularJS代碼? – chakeda

+0

當然更新了描述 – user3339691

回答

1

ng-init應該有工作就好了:

<span ng-if="item.result" ng-init="yourFn()"></span> 

但是,你知道什麼會導致item.result改變?你可以對控制器中的變化做出反應,並在那裏調用你的函數嗎?

+0

恩,讓我看看。其實我可以,因爲「項目」,我正在閱讀從不同的控制器方法。 – user3339691

+0

其實你的想法引發我檢查對item.result作出反應的方法,基本上這是一個init(),因此可以從它本身調用driverInfo()。解決問題。非常感謝 :) – user3339691

1

也許你可以嘗試一些像

ctrl.myfunc = function() { 
    //do some time consuming work 
    return false; //true; 
}; 

<td class="rsp-p1"> 
    <span ng-if="ctrl.myfunct()"> 
     {{ ctrl.hw_interface }} 
    </span> 
</td> 
+0

嗨DelhiPanda,感謝您的輸入,但我想檢查一些其他變量,如前所述的item.result,如果返回true調用一個函數並顯示hw_interface。以上建議的答案不會檢查item.result – user3339691

+0

在該函數中可以檢查任何具有任何參數的項目並返回false或true,或者在** ng-if **中可以用'ng-if =「item.result === 1 && ctrl.hw_interface === true「'或者如果你只需要這個定義'ng-if =」item.result && ctrl.hw_interface「' – DelhiPanda

1

你試圖把你的driverInfo()函數的跨度,而不是裏面? driverInfo函數返回你想要hw_interface變量的值是什麼?因此,如果item.result返回一個真值,則driverInfo函數將運行返回跨度中hw-interface的值。

<td class="rsp-p1"> 
 
     <span ng-if="item.result"> 
 
      {$ctrl.driverInfo() }</span> 
 
</td>

+0

感謝您的輸入,我確實嘗試了上面的像{$ ctrl.driverInfo()$},但沒有奏效。你認爲最後的「$」會造成一些問題嗎? – user3339691

+0

是的,後面的$不會允許函數正常運行,實際上現在我再次查看它,你需要2個大括號。 – PandaScript

+0

好吧,讓我試試這個,然後,:) – user3339691

0

基於DelhiPanda的回答是:

ctrl.myfunc = function() { 
    //do some time consuming work 
    return false; //true; 
}; 

<td class="rsp-p1"> 
    <span ng-if="item.result && ctrl.myfunct()"> 
     {{ ctrl.hw_interface $ }} 
    </span> 
</td> 

推理:在檢查條件語句,如果兩個參數必須truthy,第二個參數將不若第一價值論點是錯誤的。換句話說,該功能將不會運行。

希望這會有所幫助!

0

將driverInfo()函數放在div中,使用條件塊就可以工作。

<div ng-if="item.result"> 
 

 
    {$ctrl.driverInfo() } 
 

 
</div>

相關問題