2014-04-10 61 views
0

學習python讓我忘記了所有的角色,這就是我的故事,我堅持不懈。它甚至讓我忘記了我的谷歌技能,因爲我無法在任何地方找到類似的問題。最接近的可能是How to append to a json object in angular js,除此之外也無效。在數組中添加ng-model值作爲分組的孩子

我有10組兩個輸入字段,標題和說明。我想將它們作爲子元素添加到數組中,所以我最終將在我的json中擁有十個屬性,並且每個屬性又具有兩個子元素屬性。我嘗試過推,concat,即使是老式的+ =在絕望中,但沒有任何工作。我必須完全錯過這個明顯的。

以下是各行的樣子,雖然數量變化(從1到10):

<label class="sr-only" for="shorttitle1">short title</label> 
<input type="text" class="form-control" ng-click="addIdea()" ng-model="idea1.title" placeholder="title"> 
<label class="sr-only" for="description1">description</label> 
<input type="text" class="form-control" ng-click="addIdea()" ng-model="idea1.description" placeholder="description"> 

在我的控制器,下面是我根據上面的鏈接試圖版本,這是不工作比任何CONCAT或推好做:

$scope.ideas = [ 
     {idea : $scope.idea1.title, $scope.idea1.description}, 
     {idea : $scope.idea2.title, $scope.idea2.description}, 
     {idea : $scope.idea3.title, $scope.idea3.description} 
]; 

我不斷收到了意想不到的點標記的錯誤(如,在$範圍-點idea1點)。當我把簡單的文本作爲一個測試時,我得到了一個意外的右括號的令牌錯誤。

我甚至試着做一個watchCollection,只是爲了看看控制器是否會注意,但我什麼都沒有。我試着只看着idea1,然後是$ scope.idea1,然後是$ scope.idea1.title,watchCollection就在那裏。

這就是我想要的它看起來就像你,大致有:

$scope.ideas = [ 
    { 
     type : 'title goes here', 
     description : 'description goes here' 
    },{ 
     type : 'title goes here', 
     description : 'description goes here' 
    },{ 
     type : 'title goes here', 
     description : 'description goes here' 
    } 
]; 

我已檢查真的很明顯 - NG-應用程序不在同一水平NG-控制器,I打電話給正確的管制員,我沒有任何古怪的拼寫錯誤。

幫助?

回答

1

您錯過了關閉對象定義的描述。

$scope.ideas = [ 
    {idea : $scope.idea1.title, desc: $scope.idea1.description}, 
    {idea : $scope.idea2.title, desc: $scope.idea2.description}, 
    {idea : $scope.idea3.title, desc: $scope.idea3.description} 
]; 
+0

好吧,那清除了一個問題,讓我發現*真實*問題。謝謝! – kl02

0

好吧,在通過@BenCr得到一個問題之後,我發現了真正的問題。它在這裏:

<input type="text" class="form-control" ng-click="addIdea()" ng-model="idea1.title" placeholder="title"> 

沒有名字。無論出於何種原因,你必須有一個與ng-model相匹配的名字,然後角將會很好玩。我很習慣於傳統驗證的ID和名稱,我不確定這次爲什麼我忘了它們。但是,一旦我加回來,一切都表現得很好。

<input type="text" class="form-control" ng-model="idea1title" name="idea1title" placeholder="title"> 

另一個細節是,你不能有一個表格名稱,如idea-dot-title-one;你必須把點擊出來。吳模式可以處理它,但名稱不能,並且兩者必須匹配。

+0

這不太可能是真正的答案。看看這兩條線。第一個例子'ng-click =「addIdea()」ng-model =「idea1.title」',第二個例子'ng-model =「idea1title」'。我有很多沒有名字的控件。我很高興你已經修復了你的解決方案,但我不認爲你完全理解你是如何修復它的。刪除名稱,然後重試。 – BenCr

+0

我擺脫了ng-click;它沒有做任何事情。當我刪除名稱時,失敗。當我的名字不同於ng模型時,失敗。當我添加一個點來匹配ng-model時,失敗。唯一的工作時間是name = ng-model時,AND名稱存在。 – kl02

+0

查看將輸入控件綁定到列表中的對象的示例http://plnkr.co/edit/t3sSh1RPzVeeWRy9ybLj?p=preview您可以看到字段名稱與模型中屬性的名稱無關。 – BenCr