【发布时间】:2023-04-06 23:37:01
【问题描述】:
正如标题所说,我想在指令模板函数中返回一个承诺,即:
angular.module('someModule', [])
//...
.directive('someDirective', function() {
return {
//...
restrict: 'E',
template: function() {
var deferred = $q.defer();
//Some Async function which will call deferred.resolve
return deferred.promise; //Promise not supported by template property
}
};
});
由于模板属性不支持这一点,有什么(简单)方法可以“模拟”它吗?
看起来指令 resolve 是我最好的选择,但我很难想出一个很好的方法来应用从 WebSocket 加载的模板在 resolve 方法中。
我的目标是使用单个 WebSocket 连接进行所有通信。
【问题讨论】:
-
控制器属性怎么样?
-
是的,这是一个选项。但是如果我理解正确的话,走这条路需要我指定一个虚拟模板,其中包含类似 ng-include 的内容,然后编译从 websocket 调用获得的模板并将其设置为 ng-include 中使用的 src 变量。我希望有一种不那么迂回的方式来做到这一点。
标签: javascript angularjs templates websocket angularjs-directive