2015-12-27 69 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