同じスコープ/コントローラー/ディレクティブをバインド/共有し、同じドメイン内の別の iframe に詰め込む方法はありますか?
同じ ngApp を別の iframe にも持つことができればクールです。誰かが前にこのようなことをしたことがありますか?
同じスコープ/コントローラー/ディレクティブをバインド/共有し、同じドメイン内の別の iframe に詰め込む方法はありますか?
同じ ngApp を別の iframe にも持つことができればクールです。誰かが前にこのようなことをしたことがありますか?
はい、それは可能であり、特別なことをする必要はありません。コンテンツをコンパイルするだけで済みます。
以下に例を示します: http://jsfiddle.net/gWgYM/
HTML:
<div ng-app="app" ng-controller="test">
<h1>The date is {{date}}</h1>
<iframe frame=""></iframe>
</div>
Javascript:
var app = angular.module('app', []);
app.controller('test', function( $scope ) {
$scope.date = new Date();
window.setInterval(function() {
$scope.date = new Date();
$scope.$apply();
}, 1000);
});
app.directive('frame', function( $compile ) {
return function( $scope, $element ) {
var $body = angular.element($element[0].contentDocument.body),
template = $compile('<p>The date in the iframe is {{date}}</p>')($scope);
$body.append(template);
};
});