3

对于带有 angularjs 的选择标签,我正在做:

<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 数组。

4

3 回答 3

0

尽量避免绑定到原语(使用对象,例如 - $scope.data)。所以我会替换levelsdata.levels

真正需要调用的地方取决于您getdata(),但控制器的初始化可能是更好的选择。

此外,如果您想保持视图中的数据干净,请尝试在模型(或服务)中声明默认值,而不是在视图中。

于 2014-02-27T12:02:53.300 回答
0

你的方法是好方法之一。

我有另一种方式与一些自定义编码。

这是我的示例的代码。

html代码

 <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();
               })
于 2014-02-27T12:12:13.477 回答
0

You don't need to write ng-selected, it's not necessary. Also ng-init should just be used in really specific cases (nginit) so as OZ mentioned it'd better to call getData() from the controller.

<select data-ng-model="ob.id" 
        data-ng-options="level.id as level.desc for level in levels"> 
    <option value="0">default...</option>
</select>

Other than that the select looks correct.

于 2014-02-27T14:22:21.337 回答