<select class="form-control"
ng-if="((!$state.includes('home.allprojects') ||
!$state.includes('home.Sentprojects')) &&
!dynamicFields.isShowVismaButtons)"
ng-model="projects.selectedBokYear" ng-change="onBokYearChange()"
ng-options="font.value for font in projects.bokYears"></select>
如果状态不在home.allprojects或home.Sentprojects和!dynamicFields.isShowVismaButtons
中,则必须显示代码ng-if =&#34;((!$ state.includes(&#39; home.allprojects&#39;)||!$ state.includes(&#39; home.Sentprojects&#39;)) &amp;&amp;!dynamicFields.isShowVismaButtons)&#34;
但即使在home.allprojects和home.Sentprojects状态
中,Select也是可见的。任何人都可以为它提供解决方案
答案 0 :(得分:0)
您无法访问html中的$state
,
而是编写一个function
来定义你的逻辑并从你的HTML中调用该函数,或者你可以使用variable
并在html中使用state
}
我更喜欢使用我在答案中添加的功能。
<强> HTML:强>
<select class="form-control"
ng-if="checkState()"
ng-model="projects.selectedBokYear" ng-change="onBokYearChange()"
ng-options="font.value for font in projects.bokYears"></select>
在控制器中,
$scope.checkState = function(){
return ($state.includes('home.allprojects')) ||
(!$state.includes('home.Sentprojects')) &&
(!$scope.dynamicFields.isShowVismaButtons)
}
我已经从HTML创建了一个checkState
函数,并在那里定义了你的逻辑。
另外,如果没有亲子直接检查状态,您可以使用 $state.current.name
$scope.checkState = function(){
return ($state.current.name != 'home.allprojects') ||
($state.current.name != 'home.Sentprojects') &&
(!$scope.dynamicFields.isShowVismaButtons)
}