我有非常基本的功能,就像在点击功能上获取文本值一样。我在ng-if里面有一个文本框。但当我试图获得它所说的价值时,undeifned
'我对此很感兴趣并且知道ng-if创建自己的范围。所以如果它是真的那么为什么click函数在控制器中定义。
两者都在控制器中定义。
plnkr
app.controller('MainCtrl', function($scope) {
$scope.comment="";
$scope.showBox = function (){
$scope.showTextBox = true;
}
$scope.getComment = function (){
alert($scope.comment);
$scope.showTextBox = false;
}
});
答案 0 :(得分:0)
ng-if创建一个新的子范围。 ng-show没有。 我猜测$ scope.comment是在ng-if。
中定义的如果您不想使用ng-show,有时使用对象而不是简单变量就可以了。例如:
$scope.comment= { c: "" };
alert($scope.comment.c);
<textarea ng-model="comment.c">
更新了plunkr:http://plnkr.co/edit/DewF13GWVIS8bHQIIAbC?p=preview
答案 1 :(得分:0)
总是尝试在范围中使用点(。)来避免AngularJS中的继承问题。
尝试添加对象并在其上添加属性,例如 - $scope.data = {};
,然后添加$scope.data.comment = {};
代码 -
app.controller('MainCtrl', function($scope) {
$scope.data = {};
$scope.data.comment="";
$scope.showBox = function (){
$scope.data.showTextBox = true;
}
$scope.getComment = function (){
alert($scope.data.comment);
$scope.data.showTextBox = false;
}
});