我在使用 Angular 实例化控制器时遇到问题。我有一个主控制器AlkeTypeDefListController,我想从中动态创建/删除AlkeTypeDefController类型的控制器,所以我已经这样做了:
AlkeTypeDefListController的代码:
// Create main controller
Alke.controller('AlkeTypeDefListController', ['$scope', '$controller', function($scope, $controller)
{
var primitives =
[
];
// Add some properties to the scope
angular.extend($scope,
{
typedefs : primitives,
addTypeDef : function()
{
var controller = $controller("AlkeTypeDefController", {$scope:$scope.$new()});
$scope.typedefs.push(controller);
}
});
}]);
AlkeTypeDefController的代码:
// Create main controller
Alke.controller('AlkeTypeDefController', ['$scope', '$controller', function($scope, $controller)
{
// Add some properties to the scope
angular.extend($scope,
{
name : "New Type",
fields : [],
addField : function()
{
}
});
}]);
html代码是这样的:
<div id="typedefs-editor" ng:controller="AlkeTypeDefListController">
<button ng:click="addTypeDef()">Add</button>
<button>Remove</button>
<div id="typedef-list">
<ul class="list">
<li ng:repeat="typedef in typedefs"><a href="#">{{typedef.name}}</a></li>
</ul>
</div>
</div>
问题并不真正来自实例化(工作正常),而是来自初始化。事实上,当我按下“添加”按钮时出现新的“li”时,文本“新类型”(在控制器中初始化)并没有出现。
我认为这是关于范围或类似的东西,但我真的找不到如何解决这个问题。
我想知道这种方法是否正确,以及如何解决我遇到的问题。
谢谢