2
我試圖解決這個問題,我有一個使用AngularJS構建的頁面,並且需要一個同樣是角度的同一個域名iframe的功能。
我想實現的是使用$ rootScope。$ broadcast從iframe中廣播一條消息,使其成爲父框架。
我的想法做這樣的:
app.config(['$provide', function ($provide) {
$provide.decorator('$rootScope', ['$delegate', function ($delegate) {
var native = $delegate.$broadcast;
$delegate.$broadcast = function (name, args) {
if (window.frameElement) {
console.log("Broadcast inside a frame");
// Here I would do window.postMessage
} else {
console.log("Broadcast outside a frame");
}
return native;
}
return $delegate;
}]);
但這吹了一個角度誤差。有關修復此錯誤的任何建議?有沒有更好的方法來做我想找的?
什麼是你的錯誤? – PaulParton 2014-10-02 00:16:42
_請定義「爆炸」_什麼是錯誤?這樣呢? http://plnkr.co/edit/B70D8S?p=preview – PSL 2014-10-02 00:22:53
我收到一個錯誤,提示無法讀取未定義的屬性'$$ listeners'。我認爲這是因爲$ broadcast使用'this'並且設置native = $ delegate。$ broadcast正在改變這個內部的上下文$ broadcast – Valchris 2014-10-02 00:32:53