编辑:现在我已经实际使用 angularjs,我不建议任何人做我想要完成的事情。
这是我的第一个 Angularjs 应用程序,所以我是个菜鸟,并且仍在尝试解决问题。但是我在我的 chrome 控制台中收到一个错误,上面写着:
Uncaught Error: [$injector:modulerr] http://errors.angularjs.org/1.3.0-beta.1/$injector/modulerr?p0=app&p1=Error…s.org%2F1.3.0-beta.1%2F%24injector%2Fnomod%3Fp0%3Dapp%0A%20%20%20%20at%20E...<omitted>...1) angular.min.js?1394393789:6
(anonymous function) angular.min.js?1394393789:6
(anonymous function) angular.min.js?1394393789:30
r angular.min.js?1394393789:7
e angular.min.js?1394393789:29
cc angular.min.js?1394393789:32
c angular.min.js?1394393789:17
bc angular.min.js?1394393789:18
cd angular.min.js?1394393789:17
(anonymous function) angular.min.js?1394393789:208
l jquery-2.0.3.js:2913
c.fireWith jquery-2.0.3.js:3025
x.extend.ready jquery-2.0.3.js:398
S
这将我发送到此页面:http://docs.angularjs.org/error/ $injector/modulerr?p0=app&p1=Error:%20%5B$injector:nomod%5D%20http:%2F%2Ferrors.angularjs.org%2F1.3.0-beta.1%2F $injector%2Fnomod%3Fp0%3Dapp%0A%20%20%20%20at%20E
我不会从 1.2 及以下版本移植任何应用程序。我按照下面的一些简单代码的文档..
这是此代码基于的 Angular 文档:http://docs.angularjs.org/tutorial/step_02
浏览器中显示的是带有 {{split.description}} 的标题标记。有什么想法吗?
我的 HTML
<html lang="en" ng-app="app">
<head>
<!-- My CSS Here -->
</head>
<body>
<div ng-controller="SplitController">
<div ng-repeat="split in splits">
<h4>{{split.description}}</h4>
</div>
</div>
</body>
</html>
我的 JavaScript
var Split = function(data)
{
this.description = data['description'];
}
function getSplits(parentid) {
var url = "/transaction/split/get";
var ajax = $.ajax({
type: 'GET',
dataType: 'json',
url: url,
data: {
parentid: parentid
},
beforeSend: function(data){
},
success: function(data){
data = JSON.parse(data, true);
var splits = [];
for(var i = 0; i < splits.length; i++)
{
splits.push(new Split(splits[i]));
console.log(splits[i]);
}
var app = angular.module("app", []);
app.controller('SplitController', function($scope){
$scope.splits = splits;
});
},
error: function(data){
//$('body').html(JSON.stringify(data));
}
}).done(function(data){
});
}
$(document.ready(function(){
getSplits(1);
});
最佳答案
由于其他人已经说明的原因,我真的不建议这样做,但是您始终可以在某些 jquery 处理程序中获得对给定元素的 angular $scope 的句柄。只需像通常那样定义您的 Controller (在脚本正文中)。
success: function(data){
... //splits and whatnot
var $scope = angular.element($("div[ng-controller='SplitController']")).scope()
$scope.$apply(function(){
$scope.splits = splits;
})
}
您不能像现在这样定义 Controller ,因为 ng-app 将在 document.ready 上运行。它将寻找您使用 ng-controller 指定的尚未定义的 Controller 。您可以定义一个不初始化 'splits' 或任何数据的 SplitController,因为 ng-repeat 将监视对 'splits' 的更改并保持 DOM 最新。
关于javascript - Angular JS 错误 : [$injector:modulerr],我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22287269/