Javascript 安格拉斯通过范围?
实际上,我不确定问题的标题应该是什么,因为我不清楚我遗漏了什么 我把这归结为一个非常简单的例子(实际情况更复杂)。我有一个文本框和ng开关内的按钮。我读过,这个开关创建了它自己的局部作用域 单击按钮时,我要做的是将文本框的值传递给函数。在函数中,我将对值执行需要执行的操作,然后清除文本框。我正在努力找到正确的方法来做这件事 控制器代码:Javascript 安格拉斯通过范围?,javascript,html,angularjs,Javascript,Html,Angularjs,实际上,我不确定问题的标题应该是什么,因为我不清楚我遗漏了什么 我把这归结为一个非常简单的例子(实际情况更复杂)。我有一个文本框和ng开关内的按钮。我读过,这个开关创建了它自己的局部作用域 单击按钮时,我要做的是将文本框的值传递给函数。在函数中,我将对值执行需要执行的操作,然后清除文本框。我正在努力找到正确的方法来做这件事 控制器代码: $scope.temp = 1; $scope.tempCall = function (tempModel) { tempModel = ""; /
$scope.temp = 1;
$scope.tempCall = function (tempModel) {
tempModel = ""; //this doesn't work
$scope.tempModel = ""; //nor does this
};
HTML/模板:
<div ng-switch on="temp">
<div ng-switch-when="1">
<input ng-model="tempModel" />
<input type="button" ng-click="tempCall(tempModel)" />
</div>
<div ng-switch-when="2">TWO</div>
</div>
两个
我相信我实际上可以从父范围或根范围遍历范围并清除值,但这“感觉”不正确。清除此值的正确(角度)方法是什么?这里有一种方法:
<input type="button" ng-click="tempCall(tempModel);tempModel='';" />
然后,您将能够通过以下方式清除该值:
$scope.tempCall = function (tempModel) {
tempModel.value = "";
};
为了防止数据绑定问题,“经验法则是,如果使用ng模型,必须在某处有一个点。”Miško Hevery这里有一种方法:
<input type="button" ng-click="tempCall(tempModel);tempModel='';" />
然后,您将能够通过以下方式清除该值:
$scope.tempCall = function (tempModel) {
tempModel.value = "";
};
为了防止数据绑定问题,“经验法则是,如果使用ng模型,必须在某处有一个点。”Miško Hevery当您使用角度范围中的基本值时,不能从子范围覆盖父范围中的值。这是因为angular使用javascript原型继承 在这种情况下,您可以在父范围中创建一个对象,然后在子范围中更新该对象的值。因为您没有覆盖对象(仅附着到对象的特性),所以参照可以工作 我在plunk上创建了一个演示,你可以
$scope.temp=1;
$scope.tempModel={};
$scope.tempCall=函数(){
$scope.tempModel.previous=$scope.tempModel.value
$scope.tempModel.value=“”;
};
{{tempModel.previous}
两个
在角度范围内使用基本值时,不能从子范围覆盖父范围内的值。这是因为angular使用javascript原型继承 在这种情况下,您可以在父范围中创建一个对象,然后在子范围中更新该对象的值。因为您没有覆盖对象(仅附着到对象的特性),所以参照可以工作 我在plunk上创建了一个演示,你可以
$scope.temp=1;
$scope.tempModel={};
$scope.tempCall=函数(){
$scope.tempModel.previous=$scope.tempModel.value
$scope.tempModel.value=“”;
};
{{tempModel.previous}
两个
您可以创建一个文本框吗?使用jquery清除文本框还是简单地设置clear tempModel?记住获取值1stCoull您可以创建一个吗?使用jquery清除文本框还是简单地设置clear tempModel记住获取值1stHanks和+1。Derek的答案,包括物体,在早些时候得到了,所以我接受他的答案。谢谢和+1。Derek的答案包括了物体,我早就收到了,所以我接受了他的答案。
$scope.temp = 1;
$scope.tempModel = {};
$scope.tempCall = function () {
$scope.tempModel.previous = $scope.tempModel.value
$scope.tempModel.value = "";
};
<div ng-switch on="temp">
<div ng-switch-when="1">
<input ng-model="tempModel.value" />
<input type="button" ng-click="tempCall()" />
{{tempModel.previous}}
</div>
<div ng-switch-when="2">TWO</div>