/ / O escopo Angular JS não está sendo atualizado a partir do modelo incluído - angularjs, angularjs-scope, angular-template

Âmbito JS Angular que não está sendo atualizado do modelo incluído - angularjs, angularjs-scope, angular-template

Portanto, tenho abaixo index.html:

<div ng-controller="UsersController">
<div ng-include=""assets/users/partials/template.html""></div>
<a ng-click="get_data()">Get</a>
</div>

Template.html:

<input type="text" ng-model="SearchUser" name="SearchUser" />

Meu controlador:

app.controller("UsersController", ["$scope", function($scope) {
$scope.get_data = function(){ console.log($scope.SearchUser); };
}
]);

Portanto, no caso acima, na âncora de clique, estou ficando indefinido no $scope.SearchUser valor do escopo. Mas se eu tirar essa entrada do modelo e colocar dentro do HTML principal, ela funciona.

Eu verifiquei várias declarações de controlador e outros materiais, mas nada funcionou para mim.

Estou usando a versão 1.2.25 angular.

Respostas:

6 para resposta № 1

ng-include define seu próprio escopo, que herda do escopo do controlador. Portanto, SearchUser é definido, mas como um atributo do escopo filho.

Como sempre, a solução é ter um ponto em seu modelo ng e definir o objeto externo no escopo do controlador:

$scope.state = {};

e, no HTML:

<input type="text" ng-model="state.SearchUser" name="SearchUser" />

Dessa forma, angular obterá o campo de estado deo escopo filho. Como o escopo filho estende prototipicamente o escopo do controlador, ele o encontrará no escopo do controlador e escreverá o atributo SearchUser do objeto de estado.