在angular指令中更改异步数据

时间:2014-11-05 17:04:23

标签: javascript angularjs asynchronous angularjs-directive angularjs-scope

我有指示:

angular.module('mymodule').directive('someName', ['$http', function($http) {
    return {
        restrict: 'AE',
        scope: {
            headerId: '=header',
            data: '=data'
        },
        templateUrl: 'path/to/template.html',
        compile: function() {
            return function($scope, $link, $attr) {
                console.log($scope.headerId); // print actual header id
                console.log($scope.data);     // undefined

        /* ... code ... */

要点是标题在指令属性中被硬编码为数字。一切都很好。但是数据是从具有角度服务的服务器异步获得的。因此,在编译函数运行时,$ scope中没有数据。我的问题是我想要更改数据,以便指令模板可以读取它。

我该怎么做?

1 个答案:

答案 0 :(得分:2)

将观察者添加到数据中 范围。$ watch(' data',function(){...})