小编aco*_*ado的帖子

当Angular完成向DOM添加范围更新时如何触发方法?

在我将更改添加到$ scope变量之后,我正在寻找一种执行代码的方法,在本例中为$ scope.results.我需要这样做,以便在它可以执行之前调用一些遗留代码,这些遗留代码要求项目在DOM中.

我的真实代码是触发AJAX调用,并更新范围变量以更新ui.所以我目前我的代码在推送到示波器后立即执行,但遗留代码失败,因为dom元素尚未可用.

我可以使用setTimeout()添加一个丑陋的延迟,但这并不能保证DOM真正准备就绪.

我的问题是,有什么方法可以绑定到"渲染"类似的事件?

var myApp = angular.module('myApp', []);

myApp.controller("myController", ['$scope', function($scope){
    var resultsToLoad = [{id: 1, name: "one"},{id: 2, name: "two"},{id: 3, name: "three"}];
    $scope.results = [];

    $scope.loadResults = function(){
        for(var i=0; i < resultsToLoad.length; i++){
            $scope.results.push(resultsToLoad[i]);
        }
    }

    function doneAddingToDom(){
        // do something awesome like trigger a service call to log
    }
}]);
angular.bootstrap(document, ['myApp']);
Run Code Online (Sandbox Code Playgroud)

链接到模拟代码:http://jsfiddle.net/acolchado/BhApF/5/

提前致谢!

angularjs angularjs-scope

36
推荐指数
2
解决办法
4万
查看次数

在iOS模拟器中使用GPX文件不会停在最后一个坐标,保持循环

我一直在阅读有关iOS模拟器上的位置模拟的许多问题/答案,但没有涉及我的具体问题.我有一个位置感知应用程序的原型,我配置为使用GPX文件,如本答案所述:如何解决Xcode 4.1(LION)GPS错误?

它工作得很好,它提供了我需要的所有信息,但有一个例外.当我们进入GPX文件中定义的最后一个位置时,我期待位置更新停止.相反,当前位置在循环中不断更新.它返回到起始位置,并循环直到你停止它.

我已经尝试在我希望它留在的区域周围标记位置,但它忽略了它们.它可能与位置的最小变化有关,但它只是忽略它并继续循环.

创建了一个快速项目来说明问题并将其加载到GitHub:https://github.com/acolchado/LocationPrototype

要重现,请按照下列步骤操作:

  1. 在xcode中加载项目,我使用xcode 4.4.1创建它.

  2. 运行该项目.

  3. 从调试面板中,找到位置箭头.单击箭头并从上下文菜单中选择"SanBruno_To_Downtown_SF".

  4. 将模拟器带到前台并观察无限循环.

我到处寻找解决方案,但是我找不到任何关于循环的提法.我非常感谢任何人在这里提供的任何帮助.

谢谢,

奥古斯丁

iphone xcode objective-c geolocation ios

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