不能在一个angular控制器的多个部分HTML场景中访问作用域变量的更新值
Can't access updated value of scope variable in a scenario of multiple partial HTML with single angular controller
我有一个与angular控制器关联的HTML,它使用了两个partial。我把它简化了:
HTML:<!DOCTYPE html>
<html>
<script src= "http://ajax.googleapis.com/ajax/libs/angularjs/1.3.14/angular.min.js"></script>
<body>
<!-- It calls one of these two partials for a navigation bar. -->
</body>
</html>
HTML 1:
<div ng-app="myApp" ng-controller="myCtrl">
Name: <input type="text" ng-model="name" ng-click="myfunction()">
</div>
HTML 2:
<div ng-controller="myCtrl">
<br>
Person Name: {{new_name}}
</div>
控制器:
var app = angular.module('myApp', []);
app.controller('myCtrl', function($scope) {
$scope.name = "";
$scope.new_name = "";
$scope.getQuery = function() {
$scope.new_name = $scope.name;
};
});
现在在HTML 2中,{{new_name}}
是在JS中声明的空字符串。但我希望它像HTML 1输入中提到的那样,我的意思是运行时绑定。
我错过了什么吗?
每次写入ng-controller="myCtrl"时,都会创建一个新的控制器实例。这意味着创建了一个新的作用域。要看到这一点,只需在浏览器中检查元素,并在控制器的开头设置一个断点。您将看到创建了两个实例。
我建议你为每个视图设置一个不同的控制器。如果你想在一个页面中显示多个视图,你可以查看名为views的Ui-router。
然后,要在这些控制器之间共享数据,您可以:
- 创建一个服务并注入到两个控制器
- 使用$scope,让父$scope被子控制器访问。UI-Router嵌套状态
相关文章:
- 通过javascript/html访问twitter共享iframe
- jQuery从html访问数据
- HTML 5 访问并处理 iphone 手电筒
- 如何从 javascript in html 访问 Java 中的方法
- 使用 POST 方法从后端的 HTML 访问输入标签值
- 如何从
- 如何从脚本而不是 html 访问 res.locals
- 从其他HTML访问的javascript的动态值
- 如何从自定义HTML访问使用Ember CLI构建的Ember应用程序的路由
- 在没有ASP.NET的情况下从JavaScript/HTML访问C#代码
- 如何从angular中的HTML访问作用域中的对象
- 使用out-html访问另一个js文件
- 如何在Tomcat服务器中使用HTML访问/WEB-INF中的文件?
- 通过内部时间轴- Adobe动画- HTML 5访问主时间轴
- 使用HTML 访问表单输入
- 注入HTML访问Chrome API和全局变量
- Cordova -从远程HTML访问设备功能
- 我可以从具有隔离作用域属性的元素的内部HTML访问父作用域吗?
- 在没有html访问权限时显示/隐藏在javascript中
- 从HTML访问C#值