angularjs angularjs-ng-init ng-bind

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