如果ng-if =“item.value”返回true,我有一个html脚本,我试图调用控制器中存在的函数。这是片段
<td class="rsp-p1">
<span ng-if="item.result">
{$ ctrl.hw_interface $}</span>
</td>
所以在这里,我正在寻找的流程是ng-if返回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 :(得分: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>
答案 1 :(得分:1)
您是否尝试过将您的driverInfo()函数放入span中?哪里的driverInfo函数返回你想要的hw_interface变量的值是什么?因此,如果item.result返回一个truthy值,那么driverInfo函数将在span中返回hw-interface的值。
<td class="rsp-p1">
<span ng-if="item.result">
{$ctrl.driverInfo() }</span>
</td>
答案 2 :(得分:1)
ng-init
应该可以正常工作:
<span ng-if="item.result" ng-init="yourFn()"></span>
但是,您知道会导致item.result
更改的原因吗?你能对控制器中的变化作出反应并在那里调用你的功能吗?
答案 3 :(得分: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>
推理:在检查条件语句时,如果两个参数都需要是真实的,那么如果第一个参数为false,则不会对第二个参数进行评估。换句话说,该功能将不会运行。
希望这有帮助!
答案 4 :(得分:0)
将driverInfo()函数放在带有条件块的div中,它将起作用。
<div ng-if="item.result">
{$ctrl.driverInfo() }
</div>
&#13;