角度和$q:奇怪的是,什么都没有工作
Angular and $q: strangely, nothing is working at all
我在网站上看到了一个关于如何使用$q的示例,并尝试将其粘贴到测试项目中,并进行一些更改。
我试图实现的功能是按下一个按钮,检索我在根目录中的 JSON 文件,当前提成功时,在 ng-repeat 指令中显示 JSON 内容。
这是我的服务,它使用$q的承诺:
app.factory('dataService', ["$http", "$q", function($http, $q) {
return {
getAll: getAll
}
function getAll() {
var defered = $q.defer();
var promise = defered.promise;
$http.get('data.json')
.success(function(data) {
defered.resolve(data);
})
.error(function(err) {
defered.reject(err)
});
return promise;
}
}
}(;
这是 HTML。奇怪的是,我的 ng-show 指令根本不起作用;跨度一直显示 Angular 表达式,就好像根本没有导入 Angular 一样:
<!DOCTYPE html>
<html ng-app="miApp">
<head>
<meta charset="UTF-8">
<script src="angular.js"></script>
<script src="mainmodule.js"></script>
<link rel="stylesheet" href="bootstrap/css/bootstrap.css">
</head>
<body ng-controller="Controller1">
<button ng-click="receive()">Import data</button>
<span ng-show="dataArrived" ng-repeat="user in users">- Name: {{user.name}}, Age: {{user.age}}, Job: {{user.job}}</span>
</div>
</body>
</html>
最后,我的控制器:
app.controller('Controller1', ["$scope", "dataService",
function($scope, dataService) {
$scope.dataArrived = false;
$scope.receive(function() {
dataService.getAll().then(function(data) {
$scope.users = data;
$scope.dataArrived = true;
}).catch(function(err)) {
alert("Error: " + err);
}
});
}
]);
我根本不知道发生了什么。Angular 对我来说似乎被打破了:它在控制台上没有显示任何错误(整天都是这样,我真的很讨厌这个平台(,它不评估表达式,指令只是不起作用,等等。
我想我的代码的某些部分正在破坏这一切,但它应该显示该死的错误消息,所以也许我只是遇到了一些设计问题。有人能发现出了什么问题吗?
旧代码中的大量错误。这是一个固定的 plnkr: http://plnkr.co/edit/NN0eXFg87Ys2E3jjYQSu?p=preview
问题主要是您没有将receive
函数正确分配给范围。它必须像这样完成:
$scope.receive = function() {
你的代码就像
$scope.receive(function() {
你有一个没有开始标签的结束div标签,所以这可能会弄乱你的html
相关文章:
- 我错过了什么让ScrollSpy工作
- Doppio:多线程是如何工作的,有什么限制吗
- 什么能抵消我的工作压力
- 让 jquery 为 ajax 添加的元素工作的最佳方法是什么?
- 在什么情况下,应该.deep.equal失败,但使用JSON.stringify进行比较工作正常
- 我的ajax加载栏出了什么问题?为什么它不能正常工作
- 在表单提交将DOM的一部分替换为分部之后,我应该将ajax成功绑定到什么来使我的javascript工作
- 有什么技巧可以让vw调整大小以在webkit浏览器上的:before伪类上工作吗
- Jquery自动完成不是't工作.我做错了什么
- Javascript .call() 用法.一个工作案例,一个不是.有什么区别
- 在fter.js插件工作之前,我错过了什么
- 什么是完美的工作流程来处理A,B和amp;其中A取决于B,B取决于C
- 角度控制器的作用是什么;t控制器'他的工作由指令来完成
- 我不确定我缺少什么才能使此应用程序在Websockets上在Google Cloud上正常工作
- 我的jQuery在JSFiddle中工作,但不能在我的网站上工作!我做错了什么
- 为什么这个jQuery选择器工作?它基于什么
- FileWriter在javascript中究竟是什么工作的
- 什么工作得更快“for(在obj中键入)”或“.forEach”
- 角度和$q:奇怪的是,什么都没有工作
- 无法让插座工作 - 我错过了什么愚蠢的东西