我打算在里面打开一个带有角度$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')
它有效。有人可以告诉我如何在不使用指令的情况下正确绑定数据,如果可能的话吗?
答案 0 :(得分:0)
您可以将附加到带有绑定的正文编译元素,例如
$compile('<div>{{var}}</div>')($scope)
或者你可以将html添加到body本身并编译它
$compile(angular.element($scope.window.document.body).html('{{var}}'))($scope);