动态插入嵌套控制器
Dynamically insert nested controller
我有一个简单的ASP.NET MVC应用程序,它包含一个ng控制器。使用局部视图,我在这个控制器中注入了另一个仅在需要时使用的ng控制器。我怎么能使它工作,因为我无法正确地装订。这里有一个我需要的简化版本。
<body ng-app="MyApp">
<div id='parent' ng-controller="MyCtrl">
<label>Primitive</label>
<input type="text" ng-model="name">
<label>Object</label>
<input type="text" ng-model="user.name">
<button onclick="addNested();">Add Nested Controller</button>
</div>
</body>
javascript部分:
var app = angular.module("MyApp", []);
app.controller("MyCtrl", function($scope) {
$scope.name = "ParentName";
$scope.user = {
name: "Peter"
};
});
function addNested() {
$('#parent').append(
'<div class="nested" ng-controller="MyNestedCtrl">'+
'<label>Primitive</label>' +
'<input type="text" ng-model="name"><br />' +
'<label>Primitive with explicit $parent reference</label> <br />' +
'<input type="text" ng-model="$parent.name">' +
'<label>Object</label>' +
'<input type="text" ng-model="user.name">' +
'</div>' +
'<script type="text/javascript">' +
'var a = angular.module("MyApp");' +
'a.controller("MyNestedCtrl", ["$scope", MyNestedCtrl] );' +
'</script>');
}
function MyNestedCtrl($scope)
{
$scope.name = "ChildName";
$scope.user = {
name: "Paul"
};
}
如果您想手动插入HTML的部分,您必须通知Angular您已经这样做了。具体来说,使用$compile
服务将HTML模板链接到特定的范围,从而使绑定"有效"。最好在指令中而不是在控制器中做这种事情,但为了演示的目的,这就可以了
Plunker:http://plnkr.co/edit/RmYYynlHKEoQWVbELYDP?p=preview
您编写的是jquery,而不是angularJS。在angular中,你应该在HTML上有一个ng视图,在你的代码中你应该调用一个路由(使用ng路由器)或一个状态(使用ui路由器)来代替tempalte。您的HTML代码可以位于以下两个位置之一:
1) 在tempalte:
下的状态定义中2) 在将用CCD_ 3属性引用的外部HTML模板文件中。
该模板将替换标记中具有ng-view
属性的任何内容。所以,如果你想隐藏你的按钮,它应该是:
<div ng-view>
<button> button goes here </button>
</div>
相关文章:
- 在嵌套递归指令中将参数传递给父控制器方法
- Angularjs 中的嵌套视图,每个视图都有单独的控制器
- 如何在AngularJS页面中嵌套两个控制器
- 如何从指令的控制器调用依赖注入服务的嵌套方法
- 如何在使用具有嵌套视图的 ui 路由器时添加用户控制器
- 如何在 AngularJS 中初始化嵌套控制器
- 嵌套指令 - 无法将 args 从 Angularjs 中的子指令传递给控制器方法
- 未在选择标记下拉列表中选择以隐藏其他输入元素的嵌套控制器
- AngularJS 嵌套控制器
- AngularJS嵌套控制器 - 表单未定义
- 嵌套视图控制器和ng-click-AngularJs
- 在唯一模板中呈现的Symfony多个控制器操作 - 已达到最大嵌套级别
- 帆.js控制器、模型和视图的嵌套文件夹
- AngularJS:调用嵌套控制器中的JSON数组值
- 在angular js中使用ng点击的嵌套控制器
- 动态插入嵌套控制器
- 使用嵌套控制器调用函数
- AngularJS,来自变量的嵌套控制器
- 如何从控制器调用嵌套在promise中的函数
- 嵌套控制器问题