Angularjs$scope让我很困惑
Angularjs $scope is confusing me
我真的需要一些帮助。。。我已经试了好几个小时了,但还是没法工作。。。
我有一个.json文件,里面有100个这样的产品:
[{
"ean": "3613132010420",
"brand": "NewBrand",
"desc": "A description",
"feature1": "",
"feature2": "",
"feature3": "",
"feature4": "",
"feature5": "",
"img": "",
"metric": {
"gender": "female",
},
"score":""
},
{
"ean": "3613132010420",
"brand": "NewBrand",
"desc": "A description",
"feature1": "",
"feature2": "",
"feature3": "",
"feature4": "",
"feature5": "",
"img": "",
"metric": {
"gender": "female",
},
"score":""
}]
我用$http读取json,并将所有内容放在$scope.products中。数据显示在列表中,一切都很好。现在我想过滤产品并更改分数变量(在滑动选项滑块后)。
然后,由于角度数据绑定,视图也应该进行更新。
如何更改$范围中的此变量?这是我尝试过的,但没有任何效果:
$('.find-style-slider .slick-list').bind('touchstart click', function(){
angular.forEach($scope.products, function(value, key) {
$scope.products[key].score = '25'; //nothing happens
var obj = { score: '25' };
$scope.products[key].push(obj); //Uncaught TypeError: undefined is not a function
$scope.products.splice(key, 0, obj); //no error but $scope variable does not change
$scope.products[key].unshift(obj); //Uncaught TypeError: undefined is not a function
});
});
我需要更新一些东西还是$appley()?如果有任何帮助/提示,我将不胜感激。。。
编辑:我认为$scope没有像我想的那样工作。。。。我为$scope.products填充了一项服务:
productService.initDb().then(function(products) {
$scope.products = products;
});
当我把这个
var obj = { score: '25' };
$scope.products.splice(0, 0, obj);
在initDb函数内部,然后更新第一个元素!但不是在外面。
现在的问题是:为什么?如何从服务功能之外访问$scope.products?
我以为整个控制器的$scope是一样的混淆
$scope.products[key]
是一个对象,而不是数组。push, splice, unshift
方法是在数组上定义的,而不是在对象上定义的。
试试下面的逻辑。
angular.forEach($scope.products, function(product) {
product.score = '25';
})
如果需要,请尝试$scope.$apply()
。
相关文章:
- AngularJS:ng之后,重复$scope值未按预期更新
- 使用AngularJS Directive WHITOUT$scope创建一个动态html元素
- $scope变量被视为字符串AngularJs
- 如何惯用地手动销毁scope&在AngularJS中重新创建
- AngularJS,angular.element($0).scope()揭示了每个控制器的函数
- Ionic:AngularJS变量未使用$scope更新DOM
- AngularJS:$scope$注意两个相互依赖的值
- AngularJS: $scope is not defined?
- 使用transclude的AngularJS指令破坏了$scope
- AngularJS:使用$scope$以控制器作为语法进行观察
- 无法使用angularjs重置$scope变量
- Angularjs$scope让我很困惑
- Angularjs从纯JS函数调用$scope.function
- 为什么AngularJS$scope.watch()在我告诉它监视数组时会停止工作
- 在同一工厂中的函数中使用函数并传递$scope(AngularJS)
- 何时在 AngularJS Web 应用程序中使用 $scope
- 使用'控制器为'$scope angularJS
- 未捕获的引用错误:未定义$scope - AngularJS
- 在弹出窗口中使用$scope(AngularJS+Ionic)
- 无法读取property '$scope'AngularJs错误