を満たしている場合、私はAngularJSとメッセージリスナを使用して、次のコードを有する:JSBinを:AngularJSコントローラはのpostMessageイベント
<!DOCTYPE html>
<html>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular.min.js"></script>
<body>
<div ng-app="myApp" ng-controller="myCtrl">
<input type="text" ng-model="Name"><br>
<br>
<textarea id="myText" ng-model="Name"></textarea>
</div>
<br>
<span id="fromQuery"></span>
<script>
var prefix = "pre-";
var app = angular.module('myApp', []);
app.controller('myCtrl', function($scope) {
function render() {
document.getElementById("fromQuery").innerHTML = prefix + $scope.Name
}
$scope.Name = "John";
$scope.$watch('Name', function() {
render();
})
});
function receiveMessage(event) {
prefix = event.data;
}
window.addEventListener("message", receiveMessage, false);
</script>
</body>
</html>
AngularJSはすべてを同期させる可能にするコントローラを定義:input
又はtextarea
に変更が影響を与えますinput
,textarea
およびspan
である。私はグローバル変数prefix
も持っていて、内容は常にinput
またはtextarea
という接頭辞を付けてspan
に表示します。
リスナーがこのケースを複雑にします。別のWebページからこのWebページに新しいプレフィックスが送信されます(申し訳ありませんが、ここではテストを表示できませんでした)。現時点では、ページが新しいプレフィックスを受け取ると、機能範囲のためにrender
を呼び出すことができません。その結果、span
は新しいプレフィックスで更新されません。私が気づいてほしいのは、ページが新しい接頭辞を受け取ると、span
を新しい接頭辞で体系的にリフレッシュするということです。
これを実現する方法を知っている人はいますか?
あなたの質問にもっと正確に答えることができますか?それはたくさんのことを混乱させます – Aravind
JSBinとの2つのページのやりとりを示すのは難しいです。それ以外は、あなたを混乱させる部分は? – SoftTimur