2012-10-30 12 views
2

我创建的加载一些HTML代码标签内的指令:angular.js - 更新范围和模板JSONP请求后

指令:

var appDirectives = angular.module("skdApp", ["offerServices"]); 
appDirectives.directive("widget", function() { 
    return { 
    restrict: 'A', 
    template: '<div ng-controller="OfferCtrl"><p>{{offer.price}}</p></div>'; 
    } 

服务
此外,我使用服务获取一些json数据

angular.module('offerServices', ['ngResource']). 
    factory('Offer', function ($resource) { 
    return $resource('url/offer.json', {}, 
     { 
     get: {method: 'JSONP', params: {callback: 'JSON_CALLBACK'}} 
     } 
    ); 
}); 

控制器
控制器将接收到的数据现在我面临着以下问题范围

function OfferCtrl($scope, Offer) { 
    $scope.offer = Offer.get(); 
} 

。在模板被加载的时候,json请求还没有完成。这导致显示{{offer.price}}为空的字符串模板。

我需要一种方法来更新相应的值模板,一旦offerServices已收到响应(即offerService响应可用)

任何想法?

回答

2

如何使用ngCloak

说明

的ngCloak指令用于防止角HTML模板 从浏览器在其原始(未编译) 形式被短暂地出现,而你的应用程序加载。使用此指令可以避免由html模板显示引起的不良闪烁效应。

该指令可应用于元素,但通常优先使用 细粒度应用程序,以便从 渐进式呈现浏览器视图获益。

+0

你可以使用这个或者ng-show。我用ng-cloak发现,如果你有一些非模型文本在你试图隐藏的时候,它仍然会显示文本,但是用ng-show它不会。 –