AngularJS:打开新窗口并维护双向数据绑定

更环保

我正在寻找一个新的$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));
    };
}]);

JSFIDDLE

上面没有在窗口中返回任何数据。它像这里的指令一样工作

如果我append('hello world')可以的话。如果可能的话,有人可以告诉我如何正确地绑定数据而不使用指令吗?

格伦迪

您可以通过绑定将内容附加到主体编译的元素上,例如

$compile('<div>{{var}}</div>')($scope)

或者您可以将HTML添加到主体本身并进行编译

$compile(angular.element($scope.window.document.body).html('{{var}}'))($scope);

样本JSFiddle

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章