2016-09-07 2 views
1

У меня есть параметр состояния show, напримерИнтерпретировать stateParameter как тип BOOL

http://localhost/#/index?show=true 

Когда я получаю это значение из $stateParams, это было интерпретировано как строка true, теперь я преобразование строки в BOOL вручную, например,

if ($stateParams.show == 'true') { 
    $scope.XXX = true; 
} 

Это можно сделать автоматически?

+0

Там нет автоматического способа, если вы получаете переменную из вашего URL как логическое значение, потому что это всегда строка. Если вы добавите логическое значение в stateParam, оно останется логическим. – CodeNashor

ответ

0

Ну, если вы передаете параметр по URL-адресу, я не думаю, что есть автоматический способ сделать то, что вы хотите. но вы можете это сделать.

не передают параметр на URL-адресе и добавляют значение по умолчанию к вашему параметру в вашем определении state следующим образом.

$stateProvider.state("state1", { 
     url: "/one", 
     template: "<p>State 1 </p>", 
     controller: "Ctrl1", 
     params:{ 
      show:null 
     } 
     }) 

это сделает параметр show остаться как Boolean в переходе от одного к другому state.

фотографии этого скрипку http://jsfiddle.net/Miqe/j4to216z/ вытащить вашу консоль и увидеть разницу между state1 и state2

Смежные вопросы