私のメインのhtmlでは、テンプレートを読み込むビューがあります。
<div data-ng-view></div>
リンクをクリックするたびにHTMLが読み込まれます。このページ(テンプレート)で
app.config(["$routeProvider", function ($routeProvider) {
'use strict';
$routeProvider
.when("/", {
templateUrl: "events.html"
});
}]);
、私はその後、郵便ポストに<div data-ng-Post></div>
を使用して、私のevents.htmlページにこのディレクティブを使用して、別のhtmlファイル
app.directive('ngPost', function() {
'use strict';
return {
restrict: 'A',
templateUrl: 'postbox.html'
};
});
をロードするディレクティブを持っています2つの入力フィールドとボタンがあります
<input type="text" id="user" data-ng-model="username" />
<input type="text" id="mess" data-ng-model="message"/>
<button data-ng-click="Add(eventid-1, username, message)">Post</button>
私はいくつかの操作をしていますが、入力フィールドをクリアしようとしていますが、できません。方法はこちら:
$scope.Add = function (index, uname, msg) {
var a = {user: uname, message: msg, time: new Date()};
$scope.data[index].messages.push(a);
$scope.message = ''; // clearing here
$scope.username ='';
};
クリアが発生しない、私はなぜわからない。このAddメソッドを持つコントローラは、<div data-ng-view></div>
をメインのhtmlファイルにラップするので、最も外側のコントローラであり、内部のすべての$ scopeモデルにアクセスできるはずです。なぜそれは機能しませんか? クリア前の操作は問題なく動作します。
あなたのコンソールにエラーが、正しく、このイベントID-1を解析することができるようになりますとは思わない持っているべきだと考えています。 Add関数に 'debugger;'行を追加して、それがまったくトリガーされているかどうかを確認することもできます。最後のポイントはあなたのモデルとして$スコープを使用するのではなく、あなたのモデルであるオブジェクトを指すようにしてください。Googleの角型プロトタイプの継承を参照してください。 – shaunhusain
@shaunhusainデバッガが起動します。エラーがない場合、私が除外した私の操作は入力からの情報を使用します(問題はありません) – Lester
addメソッドのconsole.log($ scope.message)とconsole.log($ scope.username)出力? –