Nir*_*han 2 angularjs angularjs-scope angular-template
所以我在index.html下面:
<div ng-controller="UsersController">
<div ng-include='"assets/users/partials/template.html"'></div>
<a ng-click="get_data()">Get</a>
</div>
Run Code Online (Sandbox Code Playgroud)
Template.html:
<input type="text" ng-model="SearchUser" name="SearchUser" />
Run Code Online (Sandbox Code Playgroud)
我的控制器:
app.controller('UsersController', ['$scope', function($scope) {
$scope.get_data = function(){ console.log($scope.SearchUser); };
}
]);
Run Code Online (Sandbox Code Playgroud)
所以在单击锚点的上述情况下,我在$scope.SearchUser范围值中未定义.但是,如果我从模板中取出输入并放入主HTML,它就可以工作.
我检查了多个控制器声明和其他东西,但没有任何对我有用.
我使用角1.2.25版本.
ng-include定义了自己的范围,它继承自控制器范围.因此,SearchUser已设置,但作为子范围的属性.
与往常一样,解决方案是在ng模型中有一个点,并在控制器范围内定义外部对象:
$scope.state = {};
Run Code Online (Sandbox Code Playgroud)
并且,在HTML中:
<input type="text" ng-model="state.SearchUser" name="SearchUser" />
Run Code Online (Sandbox Code Playgroud)
这样,angular将从子范围获取state字段.由于子范围原型扩展了控制器范围,因此它将在控制器范围内找到它,并且它将编写状态对象的SearchUser属性.
| 归档时间: |
|
| 查看次数: |
381 次 |
| 最近记录: |