2013-04-01 15 views
5

我在選項卡(Angular UI)的上下文中使用角度範圍遇到了一些麻煩。在Angular UI選項卡中獲取範圍

這是我的jsfiddle example(縮小了示例,顯示多個選項卡上的字段,並且在選項卡之外具有單個提交按鈕)。

這裏是基本的HTML佈局:

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

望着jsfiddle example,沒有標籤,如果我提出一個非常基本的形式便見$ scope.user是一個對象。由於這些字段位於窗格(選項卡)內,因此範圍不正確。我如何訪問createUser中提交的用戶對象?

+0

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

回答

7

問題在於user模型深埋在隔離範圍內。要使代碼按預期工作,您需要alert輸出值$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'對象是在指令的transcluded範圍(而不是指令的隔離範圍)上創建的。 –

相關問題