我有 2 个不同的数组设置为:
var oldarr = ['one','two','three'];
var newarr = ['four','five','six'];
var condi = 1 / 0;
我使用数组值作为 ng-model 作为选择下拉列表的选项值。但是我想根据 cond 变量的值使用不同的数组,这意味着:如果 condi 为 1,我将使用 ng-model = oldarr ,而 vif confi 为 2,我将使用 ng-model = newarr。
我的下拉列表如下。有人可以建议我该怎么做吗?
<select ng-model="oldarr " ng-selected="{{defaultvalue == selectedslastatus}}">
<option ng-repeat="vals in oldarr ">{{vals }}</option>
</select>
最佳答案
我认为最好的方法是使用中间数组。
(实际上这可以通过 ng-show
或 ng-if
或 ng-switch
来完成,但如果你想要一个干净的 HTML 模板( View )和您的数组结构相同,您可能希望将逻辑迁移到 Controller )
喜欢:
<select ng-model="modelArr" ng-selected="{{defaultvalue == selectedslastatus}}">
<option ng-repeat="vals in modelArr ">{{vals }}</option>
</select>
并执行在 Controller 中使用哪个数组的逻辑。
这就是你的 Controller 的样子:
//
$scope.$watch('condi', function (){
if (condi === true)
$scope.modelArr = newArr;
else
$scope.modelArr = oldArr;
})
关于javascript - 不同条件下的 ng-model,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50173588/