Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angularjs 级联数组上n选项的角度表达式_Angularjs_Expression_Ng Options - Fatal编程技术网

Angularjs 级联数组上n选项的角度表达式

Angularjs 级联数组上n选项的角度表达式,angularjs,expression,ng-options,Angularjs,Expression,Ng Options,我有一个来自后端的数组,其中包含一个对象数组,这些对象是选择框的选项,比如countryselection: $scope.countries = [ { name: 'foo', code: 'ba' }, { name: 'bar', code: 'br' }, { name: 'biz', code: 'bb' } ]; 此阵列是原始的、可重用的,并且可以随时通过可能更改此阵列的不同函数进行更新 但是,我希望selectbox前面有一个不同的选项,该选项最初是选定

我有一个来自后端的数组,其中包含一个对象数组,这些对象是选择框的选项,比如countryselection:

$scope.countries = [
    { name: 'foo', code: 'ba' },
    { name: 'bar', code: 'br' },
    { name: 'biz', code: 'bb' }
];
此阵列是原始的、可重用的,并且可以随时通过可能更改此阵列的不同函数进行更新

但是,我希望selectbox前面有一个不同的选项,该选项最初是选定的,并且是特定于实现的(因此不会将其添加到countries数组中,以避免对其他值的使用者造成污染):

那么我想让它起作用:

<select name="countryCode" model="model.country"
    ng-options="option.code as option.name for option in defaultCountry + countries">

</select>
是否有现成的解决方案可以同时使用两个阵列作为ng选项?

这应该可以:

<select name="countryCode" model="model.country"
    ng-options="option.code as option.name for option in countries">
    <option value="">-- Select a country --</option>
</select>

--选择一个国家--

您可以在ng选项之前进行concat:

<select name="countryCode" model="model.country" ng-init="allCountries=defaultCountry.concat(countries)"
ng-options="option.code as option.name for option in allCountries">
<option value="">-- Select a country --</option>
</select>

--选择一个国家--

在ng选项中使用concat

<select name="countryCode" ng-model="model.country"
ng-options="option.code as option.name for option in defaultCountry.concat(countries)">

</select>


非常好,这不会更改原始数组,并且仍然允许在选项中反映数组中的任何更改。这确实有效,但由于模板的设置方式,不希望在模板中添加html(此处未反映更大的图片)。请注意,如果省略了
属性,该选项将被删除。我在页面中使用了完全相同的内容,该选项不会被删除!我发现这个解决方案比创建和连接数组要好。我想这是一个偏好的问题!:)我的selectbox实际上是一个通用指令,因此更新该模板以有条件地允许硬编码选项有点困难:)我的ng选项确实删除了值较少的选项元素
initial
,但空值修复了它:
initial
。不确定原因,angular 1.2.x.
ng init
似乎只运行一次,此时将在作用域上分配allCountries属性。当国家/地区更改时,此值不会更改。
<select name="countryCode" model="model.country" ng-init="allCountries=defaultCountry.concat(countries)"
ng-options="option.code as option.name for option in allCountries">
<option value="">-- Select a country --</option>
</select>
<select name="countryCode" ng-model="model.country"
ng-options="option.code as option.name for option in defaultCountry.concat(countries)">

</select>