我正在创建一个弹出模式,我希望能够使用新创建的$scope
动态更新。我想做这样的事情:
var myNewScope = $scope.$new();
myNewScope.name = 'Jack';
ModalService.open('Hello, {{ name }}', myNewScope);
然后在我的ModalService.open
方法中,我想用这个
// ... other service stuff
service.open = function(template, scope){
var compiledText = $compile(template)(scope);
// I want compiledText = 'Hello, Jack'
}
答案 0 :(得分:0)
Welp ......我不认为angular有内置的方法来做这件事。所以我只是建立了自己的版本。
app.controller('TestController', function($scope, $compile){
var scope = $scope.$new();
scope.percentage = {Value:55};
scope.name = 'Jack';
var msg = 'We are at {{ percentage.Value }}% done, {{ name }}.. {{ 4/3 }}';
var element = msg.replace(/{{\s*([a-zA-Z0-9+-/*//\s.]*)\s*}}/g, function($0, $1){
return scope.$eval($1);
} );
console.log(element); // prints 'We are at 55% done, Jack.. 1.3333333333333333'
});
这似乎工作得很好