Параметры маршрута в UI Router являются необязательными по умолчанию. Например, ваш код (следующий) говорит, что arg1
является необязательным параметром.Так что /my_state/:arg1
и /my_state/
будут работать, но не /my_state
(без косой черты).Он также показывает значение arg1
в URL.
.state('my_state', {
url: '/my_state/:arg1',
templateUrl: 'http://www.example.com/html/my_file.html',
controller: 'MyCtrl'
})
Вы можете добавить другой необязательный аргумент к этому контроллеру со своими предпочтениями:
.state('my_state', {
url: '/my_state/:arg1',
templateUrl: 'http://www.example.com/html/my_file.html',
controller: 'MyCtrl',
params: {
arg2: { value: null }
}
})
Чтобы скрыть параметры , вы должны определить их в params
.
Обратите внимание, что свойство squash
(внутри params
) настраивает как значение по умолчаниюзначение параметра представляется в URL , если текущее значение параметра совпадает со значением по умолчанию .Если сквош не установлен, он использует настроенную политику сквоша по умолчанию.
Рабочий плункер
Обновление
Другой Рабочий плункер , который использует $state.go('my_state', {'arg1': 'hello', 'arg2': 'world'});
внутри контроллера.
Обратите внимание, что не существует функциональной разницы между ui-sref
и $state.go
для Активациясостояние