在angularjs中是否有办法将渲染的局部视图作为控制器(或服务或其他)中的字符串。
类似
var str = renderPartial('partials/foo.html', {/*scopeObj*/});
$scope.showMe = str;
答案 0 :(得分:0)
是的,您可以这样做,在您的应用运行功能中,您可以将模板缓存放到$ templateCache:
angular.module("youApp", []).run(["$templateCache", function($templateCache) {
$templateCache.put("url/to/your/template1.html",
"<span>Template</span>"); // 'url/to/your/template1.html' is used to location the cache in angular
}]);
然后在您的视图或其他地方,您可以使用网址(此时不会触发http请求)加载您放在$ templateCache中的模板。
e.g。在html:
<div ng-include="url/to/your/template1"></div>
Here is $templateCache document.
顺便说一句,angular-ui-bootstrap.js(at the bottom of this lib)管理他们在lib中的模板的方式。 :)
答案 1 :(得分:0)
您是否尝试过使用$compile
服务:
function someFunction($compile) {
var element = $compile('<p>{{total}}</p>')({/*scopeObj*/});
}
使用$templateCache
可能就像你想要的那样
function someFunction($compile $templateCache) {
var element = $compile($templateCache.get('partials/foo.html'))({/*scopeObj*/});
}