2015-10-07 5 views
9

में गतिशील रूप से राज्य और पैरामीटर बदलें ui रूटर का उपयोग करते हुए मैं बहुत की तरह एक एनजी-दोहराने के अंदर गतिशील ui-sref निर्देश स्थापित करने के लिए, चाहते हैं:ui-sref

<a ng-repeat="step in steps" ui-sref="{{step.state(step.param)}}"></a> 

कहाँ कदम एक है "राज्य वस्तुओं" का अपना राज्य और परम ऑब्जेक्ट वाले की सरणी:

var steps = [{state: 'foo', param: {id: 'bar'}}, {...}]; 

एक प्रक्षेप त्रुटि फेंकता है। दूसरी ओर, केवल राज्य या परम गुजर गतिशील नीचे महान प्रति काम करता है:

// Pass only dynamic state works great 
<a ng-repeat="step in steps" ui-sref="{{step.state}}"></a> 
// Pass only dynamic param works great 
<a ng-repeat="step in steps" ui-sref="foo(step.param)"></a> 

मैं एक hacky समाधान के रूप में एनजी-क्लिक करें उपयोग करने की कोशिश, लेकिन यह ui-sref सक्रिय साथ अच्छी तरह से नहीं खेले:

<a ng-repeat="step in steps" ng-click="$state.go(step.state, step.param)"></a> 

क्या कोई भी राज्य और परम गतिशील रूप से पारित करने के लिए एक अच्छा तरीका से परिचित है?

उत्तर

19

मुझे लगता है कि ui-sref ( और ) के अंदर एक अभिव्यक्ति के रूप में क्या पार्स करेगा।

तो आपको बस इतना करना है।

<a ng-repeat="step in steps" ui-sref="{{step.state}}(step.param)"></a> 

सुनिश्चित नहीं है कि उपरोक्त काम करेगा या नहीं, लेकिन यह पहली बात है जिसे मैं कोशिश करूंगा।

+1

जादू, जो काम करता था। धन्यवाद! –

+3

ध्यान रखें कि यूई-राउटर आपके गतिशील चर से 'href' विशेषता भी बनाएगा लेकिन यह इसे परिवर्तन पर अपडेट नहीं करेगा और लिंक हमेशा प्रारंभिक चर मूल्य – untitled

+0

पर बहुत बढ़िया काम करेगा – gsalgadotoledo