相关疑难解决方法(0)

在AngularJS中的每个模型更改后,ng-show中的表达式被触发了吗?

我有这个简单的控制器标记

<div ng-controller="TestCtrl" ng-show="isVisible()">
    <input type="text" ng-model="smth"/><br>
    <span>{{smth}}</span>
</div> 
Run Code Online (Sandbox Code Playgroud)

和控制器本身

function TestCtrl($scope, $log)
{
    $scope.smth = 'smth';

    $scope.isVisible = function(){
        $log.log('isVisible is running');

        return true;
    }
}
Run Code Online (Sandbox Code Playgroud)

为什么在模型的每一个小变化之后(例如在文本框中更改一个字母)我可以isVisible is running在控制台中看到?这种情况不是问题,但我认为它将在大型应用中.我可以避免这个吗?

angularjs

3
推荐指数
1
解决办法
7710
查看次数

AngularJS - 由于promise对象而产生的无限循环

我是AngularJS的新手,所以这实际上可能指向一些我尚未完全理解的核心概念.我正在尝试使用$q&promiseobjects 处理"远程数据",如本地数据.直到没有获取远程数据的时间,该promise对象无法解析,但一旦解析,我希望视图中的所有依赖数据绑定都得到更新.但是,以下方法导致无限循环remote_total被重复调用,即使通过前一次调用remote_total导致已解析的promise对象也是如此.

这是我的观点

<div ng-controller="MyController">
  {{ remote_total() }}
</div>
Run Code Online (Sandbox Code Playgroud)

这是控制器的相关代码段:

function MyController($scope, $q, $http) {
  $scope.remote_total = function() {
    var def = $q.defer();
    $http.get('/my/remote/service.json').success(function(data) {
      def.resolve(data);
    });
    return def.promise;
  }
}
Run Code Online (Sandbox Code Playgroud)

首先,如果有人能够向我解释为什么这会进入一个无限循环,那就太好了.其次,实现我想做的最好的方法是什么?

promise angularjs

2
推荐指数
1
解决办法
5651
查看次数

无法使用angular js方法动态更改页面

这是我页面上的Angular JS函数:

function DateCtrl($scope) {

        $scope.returndate = function () {

            return Date.now();
        }

    }
Run Code Online (Sandbox Code Playgroud)

标记如下:

<html ng-app>
<body>    
<div id = "date" class = "stats" ng-controller = "DateCtrl">
            <span>Date:</span><div id = "noedate">{{returndate()}}</div>
    </div>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

#nowdate由于数据绑定,您可能希望返回的日期每秒都会更改,但事实并非如此.有人知道这里有什么问题吗?

我会提供一个小提琴,但jsfiddle不支持角度......

angularjs

1
推荐指数
1
解决办法
4147
查看次数

AngularJS不断调用$ http

我是AngularJS的新手(4小时新),我正在努力让http调用工作,但是看起来它似乎正在发生的是Angular一直反复调用http get请求.我确定这是因为我的做法是错误的.这就是我想要做的.

我的控制器文件片段web服务工作正常.我在node.js应用程序中运行它

 function peopleController($scope,$http){
  $scope.getPeople = function(){
    $scope.revar = {};
    $http.get('/location/-79.18925/43.77596').
    success(function(data){
      console.log(data);
      $scope.revar = data;
    });
  }
}
Run Code Online (Sandbox Code Playgroud)

我的list.html文件

   <div ng-controller="busController">
        <div class="blueitem">{{getPeople()}}</div>
   </div>
Run Code Online (Sandbox Code Playgroud)

我知道我不会看到,因为在我的getPeople方法我不是returing什么结果 ,但我想看到的结果的日志输出我在Chrome未看到,但一万次和计数,因为角度保持在调用该URL方法和再次.相反,它一直在打击.

如何获得角度才能返回响应一次?

angularjs

1
推荐指数
1
解决办法
3371
查看次数

angularjs ngrepeat插入批次

它只是我或重复DOM插入而不是批量.众所周知,DOM操作很慢,操作应该按性能进行批处理.在集合上使用ng-repeat时,它应该在内存中创建DOM元素,然后一次插入所有元素,而不是一次插入一个.

关于如何获得这种行为有什么建议吗?

javascript performance dom angularjs angularjs-ng-repeat

1
推荐指数
1
解决办法
1673
查看次数