我有两个使用getList ()
填充的选择表单,例如:
ng-options
当选择第一个下拉列表时,它会触发<select ng-options="item.id as product.category for product in products" ng-model="order.category" ng-change='find_brands(order.category)' ></select>
<select ng-options="brand.id as brand.name for brand in brands" ng-model="order.brand" ></select>
<button ng-click='Get_Products(order)>ORDER</button>
调用以填充第二个下拉列表,如下所示:
$http
这会使用新值正确填充$scope.find_brands = function(category){
$http
.get('Default.aspx/Find_Brands', {category: category})
.success(data){$scope.products = data.d};
};
下拉列表。但是,当我选择品牌时,"brands"
不会改变。测试时,我收到一个空值。我已调查ng-model
以使用$scope.$apply
周期,但似乎这不是我的问题($digest
下拉列表成功获取刷新数据,它只是不发送数据出)。
有没有人知道最新情况以及如何解决?
答案 0 :(得分:1)
我一直在为你创建这个简单的例子:http://jsbin.com/degece/edit?html,js,console,output
在您的代码中存在一些错误。
在此行中,您使用item.id而不是product.id
<select ng-options="item.id as product.category for product in products" ng-model="order.category" ng-change='find_brands(order.category)' ></select>
在这里你有一个引用拼写错误,你在Get_Products之前不需要引用
<button ng-click='Get_Products(order)>ORDER</button>
最后,您需要将调用结果分配给$ scope.brands 变量
.success(data){$scope.products = data.d};
在我的示例中,您可以看到一些最佳实践实现,例如模型初始化。