Używam $stateProvider
do konfiguracji mojej trasy. Chciałem skorzystać z niestandardowych danych, które przekazują, aby przekazać pewne niestandardowe dane z jednej częściowej strony na drugą (na ng-click
).Jak przekazać niestandardowe dane do stanu z widoku w ui-routerze?
Jest to najlepszy mam tak daleko:
Dołączanie niestandardowych danych do państwa Przedmioty
Możesz dołączyć dane niestandardowe do obiektu państwowej (zalecamy użycie własności danych w celu uniknięcia konfliktów).
// Example shows an object-based state and a string-based state
var contacts = {
name: 'contacts',
templateUrl: 'contacts.html',
data: {
customData1: 5,
customData2: "blue"
}
}
$stateProvider
.state(contacts)
.state('contacts.list', {
templateUrl: 'contacts.list.html',
data: {
customData1: 44,
customData2: "red"
}
})
Z powyższego przykładu stwierdza można uzyskać dostęp do danych tak:
function Ctrl($state){
console.log($state.current.data.customData1) // outputs 5;
console.log($state.current.data.customData2) // outputs "blue";
}
Przyjmijmy, mam inny stan zwany klientów z własnym szablonem i kontrolera. Jak mogę zmienić wartość obiektu danych stanu kontaktu w kontrolerze/widoku klientów? tj: Chcę zmienić z tego:
data: {
customData1: 44,
customData2: "red"
}
do tego:
data: {
customData1: 100,
customData2: "green"
}
Każda wskazówka lub próbki zostaną docenione!
Zmienione - mam to działa samemu i oto jak :. na kontrolerze (na przykład: customerCtrl), można uzyskać stan kontaktu według nazwy i wprowadzić żądaną zmianę, na przykład aktualizując wartość właściwości obiektu danych niestandardowych, jak poniżej: // pobierz stan według nazwy i zmień wartość niestandardowej własności danych
$state.get('contacts').data.customData1= 100;
$state.go('contacts');// then you can make a go to that state.
Mam nadzieję, że to pomoże komuś.
Należy dodać roztwór znalazłeś jako odpowiedź i przyjmuję je. Jest to całkowicie w porządku i zachęcane, aby inni mogli czerpać korzyści z tego, czego się nauczyliście. – GregL
Dzięki @GregL, właśnie to opublikowałem i zaakceptowałem jako odpowiedź, pozostawiam również aktualne pytanie. – user3818435