angularjs ng-controller 里面的 ng-controller
angularjs ng-controller inside ng-controller
我在这样的 _Layout 页面中有一个 ng-controller。
<div ng-controller="LayoutController">
left content....
@RenderBody
right content..
并在 ajax 布局中使用 angular 模块(该部分有效)
<script type="text/javascript">
var module_ = angular.module("myapp", []);
var controller_ = module_.controller("layoutController", function ($scope) {
$.ajax({
type: "POST",
url: "Home/GetMenu",
success: function (result) {
$.each(result, function (i, ix) {
result[i].ID = i + 1;
});
$scope.TopCharactersModel = result;
$scope.$apply();
},
complete: function () {
}
})
然后我想在 Index.html 中使用另一个源自此布局页面的 Ng-Controller。
Javascript 代码在这一端不起作用,chrome 调试器显示此错误
警告:尝试加载 angular 不止一次。
<div ng-controller="IndexController">
<div class="panel-group" id="accordion" ng-repeat="arr_ in newsArr">
</div>
</div>
<script>
var module = angular.module("myapp", []);
var myController1 = module_.controller("IndexController", function ($scope) {
$.ajax({
url: "Home/GetNews",
type: "POST",
success: function (result) {
$scope.newsArr = result;
// $scope.$digest();
$scope.$apply()
},
complete: function () {
}
});
});
</script>
假设您在同一个应用程序中并且您没有创建某种具有多个 spa 的混合应用程序...您实际上是在重新声明模块:myapp。如果您需要对 myapp 模块的引用,请从 angular.module("myapp", [])
;
中删除 []
Creation versus Retrieval Beware that using angular.module('myModule',
[]) will create the module myModule and overwrite any existing module
named myModule. Use angular.module('myModule') to retrieve an existing
module.
粘贴自 module documentation。
对于第二个控制器试试这个。
<script>
var module = angular.module("myapp", []);
var myController1 = module.controller("IndexController", function ($scope) {
$.ajax({
url: "Home/GetNews",
type: "POST",
success: function (result) {
$scope.newsArr = result;
// $scope.$digest();
$scope.$apply()
},
complete: function () {
}
});
});
</script>
我在这样的 _Layout 页面中有一个 ng-controller。
<div ng-controller="LayoutController">
left content....
@RenderBody
right content..
并在 ajax 布局中使用 angular 模块(该部分有效)
<script type="text/javascript">
var module_ = angular.module("myapp", []);
var controller_ = module_.controller("layoutController", function ($scope) {
$.ajax({
type: "POST",
url: "Home/GetMenu",
success: function (result) {
$.each(result, function (i, ix) {
result[i].ID = i + 1;
});
$scope.TopCharactersModel = result;
$scope.$apply();
},
complete: function () {
}
})
然后我想在 Index.html 中使用另一个源自此布局页面的 Ng-Controller。 Javascript 代码在这一端不起作用,chrome 调试器显示此错误 警告:尝试加载 angular 不止一次。
<div ng-controller="IndexController">
<div class="panel-group" id="accordion" ng-repeat="arr_ in newsArr">
</div>
</div>
<script>
var module = angular.module("myapp", []);
var myController1 = module_.controller("IndexController", function ($scope) {
$.ajax({
url: "Home/GetNews",
type: "POST",
success: function (result) {
$scope.newsArr = result;
// $scope.$digest();
$scope.$apply()
},
complete: function () {
}
});
});
</script>
假设您在同一个应用程序中并且您没有创建某种具有多个 spa 的混合应用程序...您实际上是在重新声明模块:myapp。如果您需要对 myapp 模块的引用,请从 angular.module("myapp", [])
;
Creation versus Retrieval Beware that using angular.module('myModule', []) will create the module myModule and overwrite any existing module named myModule. Use angular.module('myModule') to retrieve an existing module.
粘贴自 module documentation。
对于第二个控制器试试这个。
<script>
var module = angular.module("myapp", []);
var myController1 = module.controller("IndexController", function ($scope) {
$.ajax({
url: "Home/GetNews",
type: "POST",
success: function (result) {
$scope.newsArr = result;
// $scope.$digest();
$scope.$apply()
},
complete: function () {
}
});
});
</script>