我有两个下拉菜单。根据第一个下拉值的选择,第二个下拉列表将填充其值。从第二个下拉值中选择值后,它将调用ng-change事件并获取数据并在表中显示信息。这很好。
但我需要的是,在第二次下来,我必须设置一个默认值,需要触发ng-change并在表格中显示数据。
以下是下拉列表的HTML代码。
<SELECT ng-model="selectedRS" ng-options="x as x.rsName for x in rsData" data-ng-change="getSPList(selectedRS)">
<SELECT ng-model="selectedSP" ng-options="x as x.displayName for x in spInfoList" ng-change="getSPInfo(selectedSP)"></SELECT>
这里我有一个表格来显示来自getSPInfo方法的信息
我的控制器方法getSPInfo是
$scope.getSPInfo = function(selectedSubproduct) {
$http({
method: 'GET',
url: getSPInfo.web ',params: {rsId: selectedSP.rsId,spId : selectedSP.id}}).
success(function(data, status, headers, config) {
$scope.spInfo = data;
}).
error(function(data, status, headers, config) {
});
}
提前致谢!!
答案 0 :(得分:0)
这只是您必须手动触发的其中一项内容。 ng-change不会触发它,因为在控制器初始化之前,不会监视该值。
在您的控制器中,您可以手动调用该功能:
$scope.getSPInfo(your_default_value);
或者我喜欢将它包装在onInit函数中,这样任何人都可以清楚地看到代码发生了什么。您还可以在此处输入在初始化控制器时需要运行的任何其他代码。
function onInit(){
$scope.getSPInfo(your_default_value);
}
onInit();
如果您使用ui-router进行路由,则第三个选项是将其作为状态定义对象的一部分放入onEnter函数中。这将在您进入该状态时运行该功能。