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 № 1ng-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.