2016-03-23 9 views
0

私のアプリケーションには2つのビューがあります。 1番目のビュー入力を2番目のビュープレースホルダに渡したいと思います。私はAngularJSを使用してコントローラにデータを渡す

.service('greeting', function Greeting() { 

    var greeting = this; 

greeting.message = 'Default'; 

}) 

.controller('LogonController', function LogonController(greeting) { 
    var first = this; 

    first.greeting = greeting; 
}) 

.controller('VideoController', function VideoController(greeting) { 
    var second = this; 

    second.greeting = greeting; 

}); 

以下のサービスを作成し、以下の私の2つの貴様は、私は私も私を入力する前に、私の第一のフォームビューでデフォルトメッセージでプレースホルダを得ることを期待しています別のコントローラに

<div ng-controller="LogonController as first"> 
    <form> 
     <input type="text" data-ng-model="first.greeting.message" placeholder="{{ first.greeting.message }}"> //1ST VIEW 
    </form> 
</div> 

<div ng-controller="VideoController as second"> 
    <h1>{{ second.greeting.message }}</h1> 
<div> //2ND VIEW 

を使用して表示されています入力。

どのように私はこれを動作させるでしょう。たぶん、あなたはこの中をテストしているものは何でもブラウザ、あなたのVideoControllerを追加している閉じられていない<div>が好きではありません

+1

正確には動作しません。入力の値を設定する 'data-ng-model =" first.greeting.message "という文字があるので、グレー表示されたプレースホルダーのテキストは表示されません。 – Lex

+0

私が達成したいのは、第1ビューに入力された入力テキストを第2ビューに表示させることです。たとえば、自分の名前を入力すると、2番目のビューに表示されます。私は理にかなっているといい。 – jaahvicky

+1

あなたのために働いていない場合、コンソールに何らかの種類のエラーがなければなりません。 JSFiddleで提供したコードを試してみましたが、うまくいきます。 – Lex

答えて

0

<div ng-app="app"> 
    <div ng-controller="LogonController as first"> 
     <form> 
      <input type="text" data-ng-model="first.greeting.message" placeholder="{{ first.greeting.message }}"> 
     </form> 
    </div> 

    <div ng-controller="VideoController as second"> 
     <h1>{{ second.greeting.message }}</h1> 
    </div> 
</div> 

JS:

ここ

<div ng-controller="VideoController as second"> 
    <h1>{{ second.greeting.message }}</h1> 
<div> <-- this should be a closing /div 

は作業バージョンです

angular.module('app', []) 
    .service('greeting', function Greeting() { 
     var greeting = this; 
     greeting.message = 'Default'; 
    }) 
    .controller('LogonController', function LogonController(greeting) { 
     var first = this; 
     first.greeting = greeting; 
    }) 
    .controller('VideoController', function VideoController(greeting) { 
     var second = this; 
     second.greeting = greeting; 
    }); 

Working JSFiddle with above

関連する問題