Javascript 不同条件下的ng模型
我有两个不同的数组设置为:Javascript 不同条件下的ng模型,javascript,arrays,angularjs,Javascript,Arrays,Angularjs,我有两个不同的数组设置为: var oldarr = ['one','two','three']; var newarr = ['four','five','six']; var condi = 1 / 0; 我使用数组值作为ng模型作为选择下拉列表的选项值。然而,我想根据cond变量的值使用不同的数组,这意味着:若condi为1,我将使用ng model=oldarr,而vif confi为2,我将使用ng model=newarr 我的下拉列表如下。有人能建议我怎么做吗 <sel
var oldarr = ['one','two','three'];
var newarr = ['four','five','six'];
var condi = 1 / 0;
我使用数组值作为ng模型作为选择下拉列表的选项值。然而,我想根据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>
{{vals}}
我认为最好的方法是使用中间数组
(实际上,这可以通过ng show
或ng if
或ng switch
来实现,但是如果您想要一个干净的HTML模板(视图),并且数组的结构相同,您可能需要将逻辑迁移到控制器)
比如:
我认为最好的方法是使用中间数组 (实际上,这可以通过
ng show
或ng if
或ng switch
来实现,但是如果您想要一个干净的HTML模板(视图),并且数组的结构相同,您可能需要将逻辑迁移到控制器)
比如:
我只想用
ng show
或类似的东西交换视图。假设condi
不总是布尔值(1或0),我建议使用ng开关。以下是一个例子:
var-app=angular.module('myApp',[]);
应用程序控制器('myCtrl',函数($scope){
$scope.condi=1;
$scope.oldarr=['1','2','3'];
$scope.newarr=['four','five','six'];
$scope.changeCondi=函数(){
$scope.condi=($scope.condi==1)?0:1;
}
});代码>
更改条件:{{condi}
{{vals}}
选定:{{oldar}}
{{vals}}
选定:{{newar}}
我只想用ng show
或类似的东西交换视图。假设condi
不总是布尔值(1或0),我建议使用ng开关。以下是一个例子:
var-app=angular.module('myApp',[]);
应用程序控制器('myCtrl',函数($scope){
$scope.condi=1;
$scope.oldarr=['1','2','3'];
$scope.newarr=['four','five','six'];
$scope.changeCondi=函数(){
$scope.condi=($scope.condi==1)?0:1;
}
});代码>
更改条件:{{condi}
{{vals}}
选定:{{oldar}}
{{vals}}
选定:{{newar}}
如果要根据条件使用型号
,可以使用ng show
。如果您需要更详细的信息,请告诉我,我会给出答案。condi
是如何变化的?它是动态的还是仅在初始化过程中如果要根据条件使用模型
,可以使用ng show
。如果您需要更详细的信息,请告诉我,我会给出答案。condi
是如何变化的?它是动态的还是仅在初始化期间
<select ng-model="modelArr" ng-selected="{{defaultvalue == selectedslastatus}}">
<option ng-repeat="vals in modelArr ">{{vals }}</option>
</select>
//
$scope.$watch('condi', function (){
if (condi === true)
$scope.modelArr = newArr;
else
$scope.modelArr = oldArr;
})