对于我正在做的angularjs的select标签:
<select ng-init="getdata()" data-ng-model="ob.id"
data-ng-options="level.id as level.desc for level in levels"
data-ng-selected="ob.id == level.id">
<option value="0">default...</option>
</select>
...但这是正确的方法,因为网上还有很多其他方式吗? getdata()获取$ scope.levels数组。
答案 0 :(得分:0)
尽量避免绑定到基元(例如使用对象 - $ scope.data)。所以我将levels
替换为data.levels
取决于你真正需要getdata()
调用的地方,但控制器的初始化可能是更好的选择。
此外,如果您想保持View清理数据,请尝试在模型中(或在服务中)声明默认值,而不是在View中。
答案 1 :(得分:0)
你的方式是一种好方法。
我有另一种自定义编码方式。
以下是我的示例代码。
<div class="col-sm-6 form-group">
<label for="companyName">Tenants</label>
<select class="form-control input-lg" ng-model="selectedTenant"
required ng-options="i.CompanyName for i in tenants">
</select>
</div>
$http.get('/tenants')
.success(function (response) {
response.push({ CompanyName: "Select", TenantId: 0 });
$scope.tenants = response;
$scope.selectedTenant = response[$scope.tenants.length - 1];
$scope.$apply();
})
答案 2 :(得分:0)
您不需要编写ng-selected,也没有必要。另外ng-init应该只用于特定的情况(nginit),因为OZ提到最好从控制器调用getData()。
<select data-ng-model="ob.id"
data-ng-options="level.id as level.desc for level in levels">
<option value="0">default...</option>
</select>
除此之外,选择看起来是正确的。