我在论坛上看到了一些类似的帖子,但没有发现我的问题。也许是因为我对js / angular和那些东西都是新手。事情就是这样:
完美图片: 我点击服务器上的按钮数据(一些文本/数字)进行更新和显示。
我的问题是 - 我只获取一次数据。后来调用jquery.js中的一些其他函数而不是我的函数。
if ( !(eventHandle = elemData.handle) ) {
eventHandle = elemData.handle = function( e ) {
// Discard the second event of a jQuery.event.trigger() and
// when an event is called after a page has unloaded
return typeof jQuery !== core_strundefined && (!e || jQuery.event.triggered !== e.type) ?
jQuery.event.dispatch.apply( eventHandle.elem, arguments ) :
undefined;
};
我的代码:
controllers.js:
myApp.controller('ajaxController', function($scope, $http, $log){
$scope.ajaxData={};
$scope.ajaxData.doClick = function(item, event){
$http({method: 'GET', url: 'temp/temp.json', params: { 'foobar': new Date().getTime() } }).
success(function(data, status, headers, config) {
$log.debug(data);
$scope.ajaxData = data;
}).
error(function(data, status, headers, config) {
$log.debug("not good");
});
的index.html:
<div class="container" ng-controller="ajaxController"> (...)
<button ng-click="ajaxData.doClick(item, $event)">Send Request</button>
percentage: {{$scope.ajaxData.data.cpu}}</br>
usage: {{$scope.ajaxData.total}}</br>
idle: {{$scope.ajaxData.idle}}</br>
我可以在chrome控制台中看到第一个请求已经完成并且成功,之后提到的上面的代码被执行而我没有数据。
答案 0 :(得分:3)
在您的成功功能中,您将使用您的回复覆盖ajaxData
$scope.ajaxData = data
这意味着$scope.ajaxData.doClick
不再存在。尝试将doClick
仅绑定到$ scope。