如何在AngularJS中更改selectbox內容時重新加載不同控制器的嵌套狀態?
我有2個選擇框1.Category和2.SubCategory
基於類別和子類別,產品將被顯示在內部狀態
類別和子類別addproducts狀態
下來產品進入添加產品狀態內的產品設置狀態
但我的問題是,當我選擇類別和子類別時,產品將顯示,這意味着
$state.go('addproducts.productsettings');
的工作,但都選擇後,當我只更改子類別選擇框也不會重裝產品狀態
$state.go('addproducts.productsettings');
將無法正常工作是不會加載在ProductSettingsController
這是後我的html代碼它包含兩個選擇框
<form>
<div class="form-group">
<label for="exampleSelect1"><b>Category</b></label>
<select ng-model="selectedCategory" class="form-control" id="categories" ng-init="selectedCategory = null"
ng-change="onCategoryChange(selectedCategory)">
<option value="">--Select--</option>
<option ng-repeat="(key,value) in categories | orderBy:'catName'| groupBy:'catName'">{{key}}</option>
</select>
</div>
</form>
<!-- ----------------------------------- -->
</div>
<div class="col-md-3">
<!-- ----------------------------------- -->
<form>
<div class="form-group">
<label for="exampleSelect1"><b>SubCategory</b></label>
<select class="form-control" id="subcategories" ng-model="selectedSubCategory" ng-disabled="!selectedCategory"
ng-options="categories.subCatName for categories in categories | filter: {catName:selectedCategory}" ng-change="getValue()">
<option value="">--Select--</option>
</select>
</div>
</form>
<!-- ----------------------------------- -->
</div>
這是我的js代碼
var appshop = angular.module('appShop', [ 'ui.router', 'angular.filter' ]);
appshop.config(function($stateProvider, $urlRouterProvider) {
$urlRouterProvider.otherwise('/category');
$stateProvider.state('addproducts',
{
url : '/addproducts',
views :
{
'body' :
{
templateUrl : 'category/manageproduct.htm',
controller : 'AddProductController'
}
}
})
.state('addproducts.productsettings',
{
url : '/productsettings',
views :
{
'[email protected]' :
{
templateUrl : 'category/productsettings.htm',
controller : 'ProductsSettingsController'
}
}
})
});
//==========================================================
appshop.controller('AddProductController',AddProductController);
function AddProductController($scope, $http,$state)
{
$scope.onCategoryChange = function(category)
{
if (!category)
{
$scope.selectedSubCategory = undefined;
}
}
var categoryPromise = $http.get("../rest/mcategory");
categoryPromise.success(function(data, status, headers, config)
{
$scope.categories=data;
});
categoryPromise.error(function(data, status, headers, config)
{
alert("Error");
});
$scope.getValue=function()
{
$state.go('addproducts.productsettings');
}
}
//==========================================================
appshop.controller('ProductSettingsController',ProductSettingsController);
function ProductSettingsController($scope,$http,$state)
{
alert("Clicked")//I need to get alert here
}
這兩個選擇框來AddProductController
下和產品在這些AddProductController嵌套的狀態時,它被命名爲ProductSettingsController下COMED
當我選擇這兩個類別和子類別它工作正常
但選擇後,只有改變的子類別它不會工作
任何當我選擇subcatname時獲取產品詳細信息的想法?我需要在ProductSettingsController點擊了警報,當我在子類別選擇框改變
看到我的回答它的幫助桑迪普姬ü – Sandeep