为什么下面的$scope在此函数中变为空白
Why does the following $scope becomes blank inside this function?
为什么panodataName
在$scope.addPanodata
函数内变空?
HTML:
<input type="text" class="form-control" ng-model="panodataName" style="width:auto;padding:0;">
<a class="btn btn-primary" href="javascript:;" ng-click="addPanodata(pano.objectId)">Add</a>
JS:
angular.module('yoApp')
.controller('addPanoCtrl', function($q, $scope, $rootScope, $routeParams, serviceUpload) {
$scope.panodataName = ''
$scope.addPanodata = function(panoId) {
var Panodata = AV.Object.extend('PanoramaData'),
panodata = new Panodata(),
panoJSON = _.where($scope.building.pano, {'objectId': panoId})
$scope.pano = panoJSON[0]
console.log($scope.panodataName)
console.log($scope.panodataName)
panodata.save(json, {
success: function(object) {
},
error: function(object, error) {
}
})
}
我觉得这很奇怪,因为如果我这样做:
{{panodataName}}
panodataName
正确显示input
的值。
编辑:
也许是因为它在ng-repeat
里面?
<div class="col-md-6" ng-repeat="panodata in pano.panoData">
你说你在ng-repeat
中得到了这个逻辑。我怀疑这是你的问题。
angular对ng-repeat
的每个"分配"所做的是创建一个新的scope
。因此,ng-model="panodataName"
将一个名为panodataName
的属性绑定到循环特定迭代的本地作用域,而不是全局控制器作用域。
此外,如果在ng repeat中添加{{panodataName}}
,那么这将起作用并打印输入文本,因为它绑定到ng repeat的子作用域。
我相信您想要的是绑定到ng-repeat
的父作用域。这是您实际定义panodataName
属性的地方,也是您尝试记录的内容。
要做到这一点,你也需要改变你的ng模型:
ng-model="$parent.panodataName"
$parent
是指向ng-repeats
父作用域的特定循环分配作用域的全局变量。
希望这是有道理的,我添加了一个小提琴演示。
注意:这个实现有一个缺点,因为现在每个输入都绑定到同一个变量,如果您更新一个,ng中的所有其他输入都将更新。
https://jsfiddle.net/j4txmzhe/
编辑:添加校样,
这表示ng-repeat
创建新的作用域指令,用于创建作用域
此外,更多的谷歌搜索会提出这个SO答案,其中的评论描述了为什么避开$parent
是个好主意。
相关文章:
- 为什么我的javascript地理编码函数返回空白结果
- 如何在 Google 应用脚本中 sendEmail 函数的范围内的唯一非空白列中返回值
- 如何在对象上使用trim函数来删除空白jquery
- 空白函数产生“空白”;预期对象”;错误
- 从 javascript 函数调用时的空白警报确认框
- 为什么下面的$scope在此函数中变为空白
- 从函数返回内容时,将新创建的TD元素上的.innerHTML设置为空白
- 如何使用split()函数与HTML标签和空白
- javascript函数indexOf()不工作在chrome与空白的字符串
- 添加空白函数时出现Javascript函数错误
- 使用Chart JS的空白PNG图像.toBase64Image()函数
- 将数组转换为函数参数的空白变量列表
- 如何添加排序函数条件,将所有空白项排序到列表的末尾?
- 如何在windows Phone空白应用程序中从javascript调用.net函数
- JavaScript中的回调是空白函数吗
- 通过对象匹配Javascript regexp中的空白,通过regexp构造函数创建
- 为什么我的函数没有从空白输入框中获取值并正确执行函数
- 变量在ajax之后显示为空白,但在ajax成功函数中具有值
- 在Google Chrome扩展开发中使用javascript中的onload()函数时出现空白弹出窗口
- 函数检查第一个空白单元格