我在我的Pc中进行了一个简单的演示,工作正常。但是当我做小提琴时问问题 未捕获错误:[$ injector:nomod]模块' myapp'不可用!您要么错误拼写了模块名称,要么忘记加载它。如果注册模块,请确保将依赖项指定为第二个参数。
你可以告诉它为什么会发生吗?我正在获取我的电脑中的数据。实际上我的真实问题如何刷新或调用相同的webservice后,一些tome意味着1分钟后。在jquery中我们有setinterval函数。我将在这个角度实现吗?这里是小提琴 http://jsfiddle.net/acboLcv2/1/
var app=angular.module("myapp");
app.factory('test', function($http) {
//This whole object is returned when the Service runs. It is a singleton
//and its properties can be accessed from any controller
return {
stationDashBoard: function(callback,error) {
$http.get('http://184.106.159.143:8180/FGRailApps/jservices/rest/a/departure?crsCode=VIC').success(callback).error(error);
}
}
});
function departureContrl($scope,test){
$scope.loading=true;
test.stationDashBoard(function(data){
console.log(data);
$scope.data=data.data;
$scope.loading=false;
//alert(data);
},function(error){
alert('error')
}) ;
}
由于
答案 0 :(得分:0)
因此,您需要关注的网站有一些内容:
我认为这是固定的,但启发式我建议:
确保角度模块的声明包含已经提到的空数组。这个是必要的,因此:
angular.module(“test”,[]);
确保您在html中引用角度应用。我建议大多数应用程序的正文:
您正在尝试使用$ http.get(...)从其他域加载数据。这个won't work除非您做某种CORS hackery或者从同一个域获取数据。即,您必须在http://184.106.159.143:8180
(在此示例中)中托管此代码。
您要求每隔n秒从服务器获取数据。这很容易,你建议使用setTimeout()的方法可以工作,但需要集成到角度摘要循环中:
我建议使用$timeout,因为它可以使用angular的渲染(这是伪代码,未经测试):
var fetchFromServer(cb){
$timeout(function(){
$http.get(...).then(function(data){
//Do something with the retrieved data
cb(fetchFromServer); //Recurse
});
}, 15000);
};
fetchFromServer(fetchFromServer);
否则你可以像往常一样在javascript中使用setTimeout,但是不要忘记调用$ scope。$ apply()方法,如果你在摘要循环之外进行渲染,或者它将显示为如果没有效果。