javascript之AngularJS:打开新窗口并维护双向数据绑定(bind)
kerrycode
阅读:12
2024-11-01 17:39:52
评论:0
我想打开一个新的浏览器窗口,其中包含 Angular $scope
数据:
<div ng-app="test" ng-controller="testController">
<input type="text" ng-model="var" />
<button ng-click="openWindow()">push!</button>
</div>
var test = angular.module('test', []);
test.controller('testController', ['$compile', '$scope','$window', function($compile, $scope, $window) {
$scope.var = 'hello'
$scope.openWindow = function() {
$scope.window = $window.open('', '_blank', 'width=500,height=400');
angular.element($scope.window.document.body).append($compile($scope.var)($scope));
};
}]);
以上不会在窗口中返回任何数据。它像 in here 这样的指令一样工作.
如果我 append('hello world')
它会起作用。如果可能的话,有人可以告诉我如何在不使用指令的情况下正确绑定(bind)数据吗?
请您参考如下方法:
你可以追加到带有绑定(bind)的主体编译元素,比如
$compile('<div>{{var}}</div>')($scope)
或者你可以将 html 添加到 body 本身并编译它
$compile(angular.element($scope.window.document.body).html('{{var}}'))($scope);
声明
1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。