2013-04-01 11 views
5

タブのコンテキスト内で角度スコープに問題があります(角度UI)。角度UIタブ内のスコープの取得

私のjsfiddle example(複数のタブのフィールドをタブの外側に1つの送信ボタンが表示されている例がスリムになっています)です。私は$のscope.userがオブジェクトで見ることが非常に基本的なフォームを送信した場合

<form...> 
    <tab> 
    <pane> 
     <input...> 
    </pane> 
    </tab> 
</form> 

jsfiddle exampleを見てみると、タブなし:

は、ここで基本的なHTMLレイアウトです。フィールドがペイン(タブ)内にあるため、スコープが正しくありません。 createUserで送信されたユーザオブジェクトにアクセスするにはどうすればよいですか?

+0

http://stackoverflow.com/questions/22772041/angualrjs-and-angular-ui-bootstrap-tabs-scope –

答えて

7

userモデルは分離スコープ内に深く埋め込まれているという問題があります。コードが期待通りに機能するようにするには、の値が$scope.$$childHead.panes[0].$$nextSibling.user.first_nameでなく、$scope.userである必要があります。これは明らかに解決策ではありません。

単純な解決策は、コントローラのスコープに空のuserオブジェクトを追加することです。 HTMLのng-modelディレクティブがこのプロパティにバインドされます。お使いのコントローラは次のようになります。

function MyCtrl($scope) { 
    $scope.user = {}; 
    $scope.createUser = function() { 
    alert($scope.user); 
    }; 
} 
+0

ありがとうございます!完璧な意味合いを持つ。 –

+0

+1。 OPのフィドルでは、ディレクティブの継承スコープ(ディレクティブの分離スコープではない)に 'user'オブジェクトが作成されることに注意してください。 –