2015-12-27 114 views
1

我有一個textarea:獲取文本區域的價值angularjs

<textarea class="notes" ng-model="notes" placeholder="Some text" style="height: 630px;"></textarea> 

然後我有一個按鈕:

<button ng-click="saveNotes(notes)"></button> 

我再有這樣的方法在我的控制器:

$scope.saveNotes = function(notes) { 
    console.log(notes); 
    student.saveNotes(notes, function() { 
     console.log("Successfully saved notes.") 
    } 
)}; 

從我可以告訴,筆記應該返回textarea的值,但它始終返回「未定義」。任何人都可以發現問題嗎?

感謝

+0

你檢查,以確保他們在同一控制器(因此相同的範圍) – Binvention

+0

@Binvention他們在同一個控制器下。還有什麼可能是原因嗎? – tryingtolearn

+0

我認爲這可能是在ng模型中使用它之前沒有定義的問題,或者存在一個與範圍有關的奇怪問題。我發現管理範圍最簡單的方法是將變量分配給控制器,而不是$ scope。它可能會更長一些,但是當你遇到示波器問題時更容易分辨 – Binvention

回答

1

也許嘗試將控制器下分配您的變量給控制器而不是像這樣

<div ng-controller='myController as app'> 
<textarea class="notes" ng-model="app.notes" placeholder="Some text" style="height: 630px;"></textarea> 
<button ng-click="app.saveNotes(app.notes)"></button> 
</div> 

然後在你的代碼範圍

this.saveNotes = function(notes) { 
console.log(notes); 
student.saveNotes(notes, function() { 
    console.log("Successfully saved notes.") 
} 
)}; 

在我看來,它只是有助於防止衝突的範圍

+0

這工作!非常感謝你。 – tryingtolearn

1

你在 「$ scope.notes」 檢索筆記的值。 解決方案:

<button ng-click="saveNotes()"></button> 

和:

$scope.saveNotes = function() { 
    console.log($scope.notes); 
    student.saveNotes($scope.notes, function() { 
     console.log("Successfully saved notes.") 
    } 
)}; 
+0

我使用了你的解決方案但我仍然遇到同樣的錯誤。 – tryingtolearn

+0

我在這裏做一個小樣本:http://jsfiddle.net/ev5p24tc/ – Didier68