मैंने एक उदाहरण बनाया है कि कैसे दिखाया जाए। अद्यतन state
परिभाषा होगी:
$stateProvider
.state('home', {
url: '/:foo?bar',
views: {
'': {
templateUrl: 'tpl.home.html',
controller: 'MainRootCtrl'
},
...
}
और यह नियंत्रक होगा:
.controller('MainRootCtrl', function($scope, $state, $stateParams) {
//..
var foo = $stateParams.foo; //getting fooVal
var bar = $stateParams.bar; //getting barVal
//..
$scope.state = $state.current
$scope.params = $stateParams;
})
हम देख सकते हैं कि राज्य घर अब url के रूप में परिभाषित किया गया है:
url: '/:foo?bar',
जिसका अर्थ है, कि url में params के रूप में अपेक्षित हैं
/fooVal?bar=barValue
ये दो लिंक सही तरीके से कंट्रोलर में तर्क देंगे:
<a ui-sref="home({foo: 'fooVal1', bar: 'barVal1'})">
<a ui-sref="home({foo: 'fooVal2', bar: 'barVal2'})">
इसके अलावा, नियंत्रक इसके $stateParams
बजाय उपभोग करता है $stateParam
।
डॉक्टर से लिंक करें:
आप इसे यहाँ देख सकते हैं
params : {}
वहाँ भी है नया , और अधिक व्यापक सेटिंग params : {}
। जैसा कि हमने पहले ही देखा है, हम मापदंडों को घोषित कर सकते हैं url
। लेकिन params : {}
कॉन्फ़िगरेशन के साथ - हम इस परिभाषा का विस्तार कर सकते हैं या यहां तक कि पैरामीटर्स भी पेश कर सकते हैं जो यूआरएल का हिस्सा नहीं हैं:
.state('other', {
url: '/other/:foo?bar',
params: {
// here we define default value for foo
// we also set squash to false, to force injecting
// even the default value into url
foo: {
value: 'defaultValue',
squash: false,
},
// this parameter is now array
// we can pass more items, and expect them as []
bar : {
array : true,
},
// this param is not part of url
// it could be passed with $state.go or ui-sref
hiddenParam: 'YES',
},
...
परमों के लिए उपलब्ध सेटिंग्स को $ राज्यप्रोपिडर के प्रलेखन में वर्णित किया गया है
नीचे सिर्फ एक अर्क है
- मान - {ऑब्जेक्ट | फ़ंक्शन =} : इस पैरामीटर के लिए डिफ़ॉल्ट मान निर्दिष्ट करता है। यह स्पष्ट रूप से इस पैरामीटर को वैकल्पिक के रूप में सेट करता है ...
- सरणी - {बूलियन =}: (डिफ़ॉल्ट: गलत) यदि सही है, तो मान को एक सरणी मान के रूप में माना जाएगा।
- स्क्वैश - {बूल | स्ट्रिंग =}: स्क्वैश कॉन्फ़िगर करता है कि URL में एक डिफ़ॉल्ट पैरामीटर मान कैसे दर्शाया जाता है जब वर्तमान पैरामीटर मान डिफ़ॉल्ट मान के समान होता है।
हम इन पैरामेट्स को इस तरह कह सकते हैं:
// hidden param cannot be passed via url
<a href="#/other/fooVal?bar=1&bar=2">
// default foo is skipped
<a ui-sref="other({bar: [4,5]})">
इसे यहां कार्रवाई में देखें
url:'.../home/:foo/:bar