ng-init angularjs
Establecer el valor predeterminado en ng-bind en HTML (3)
El ||
El operador también funciona en ngBind
como en JavaScript puro:
<span ng-bind="myVariable || ''My default value''"></span>
Esto genera myVariable
si la variable está llena, de lo contrario se usa la alternativa ''My default value''
.
Me gustaría establecer un valor predeterminado para el alcance, que es recogido por ng-bind. Estoy haciendo esto como
<button>Show <span data-ng-bind="data.text" data-ng-init="data.text = ''All'';"></span> Names</button>
En este ejemplo, el intervalo se establece en innerHTML = ''All'' cuando se carga la página.
Sin embargo, esperaba que pudiera haber una manera de hacer esto sin requerir el uso de ng-init, tal vez algo como:
<button>Show <span data-ng-bind="data.text = ''All'';"></span> Names</button>
En su controlador:
$scope.data = {};
$scope.data.text = "All";
Su marca:
<button>Show <span data-ng-bind="data.text"></span> Names</button>
O, si desea omitir el código del controlador (cortesía del comentario de Kohjah Breese):
<button>Show <span data-ng-bind="data.text || ''All''"></span> Names</button>
Es de suponer que habrá algún código en otra parte de su controlador que cambiará este valor, pero a los efectos de la inicialización, debería hacerlo.
EDITAR: Alternativamente, como lo señala tymeJV en los comentarios (ng-cloak agregado para que la sintaxis {{}} no se muestre a los usuarios):
<button>Show <span ng-cloak>{{data.text || "All"}}</span> Names</button>
desde angularjs doc :
El único uso apropiado de ngInit es para crear alias propiedades especiales de ngRepeat [...] Además de este caso, debe usar controladores en lugar de ngInit para inicializar valores en un ámbito.
Así que supongo que inicializar data.text en tu controlador está bien para angularjs