我的作用域变量没有在html视图中更新
My scope variable won't update in the html view
下面是我的angularjs代码:
$scope.attachments = [];
$scope.uploadFile = function(files){
for(var i=0; i<files.length; i++){
$scope.attachments.push(files[i]);
console.log($scope.attachments.length);
}
};
下面是html代码:
<input multiple ng-class="{true:'btn btn-success', false:'btn btn-danger'
[fileUploadedStatus]" style="width:15em" type="file" name="file"
onchange="angular.element(this).scope().uploadFile(this.files)"/>
{{attachments.length}}
<ul>
<li ng-repeat="attachment in attachments">
attachment: {{attachment.name}}
</li>
</ul>
我正试着列出所有的文件。但是$scope。附件变量不会更新,我可以在控制台日志中看到附件。长度可以是1和2等等,但在页面上它总是0
工作活塞kr: http://plnkr.co/edit/mrL1SgMV7DTEEdBg54Rm?p=preview
HTML: <br/>Attachments: {{attachments.length}} {{dummy}}
<ul>
<li ng-repeat="attachment in attachments">
attachment: {{attachment.name}}
</li>
</ul>
</body>
JS:
angular.module('app', []).controller('AppCtrl', function($scope) {
$scope.attachments = [];
$scope.uploadFile = function(element) {
$scope.$apply(function(scope) {
for (var i = 0; i < element.files.length; i++) {
scope.attachments.push(element.files[i]);
}
})
};
})
原始讨论:AngularJs:如何检查文件输入字段的变化?
美元范围。$apply因为onchange事件而被使用。但是,不确定为什么ng-change在这种情况下不起作用?
试试:
$scope.uploadFile = function(files){
$scope.$apply(function(){
for(var i=0; i<files.length; i++){
$scope.attachments.push(files[i]);
console.log($scope.attachments.length);
}
});
};
相关文章:
- 如何使用ExpressJS(在主视图/根视图上)呈现带有参数的HTML视图
- Angular数组更改时更新HTML视图
- 部分html视图's控制器未使用KendoPanelBar内容URL在指令模板URL中工作
- 将全局变量从控制器调用到HTML视图AngularJS
- 将数据从控制器调用到HTML视图AngularJS
- 将变量传递到html视图angularjs中
- 如何用程序禁用HTML视图源代码或加密HTML元素
- 在 Angular 控制器完成加载异步函数后加载 html 视图
- 如何在 Angular 中的基本 HTML 视图中加载视图
- 我可以在控制台中打印值,但不能在 html 视图中打印值
- ng-repeat显示的行等于属性的数量,甚至不在HTML视图上显示数据
- 为什么这些变量不在 html 视图中打印
- 如何将另一个Paper变量添加到JointJs的HTML视图中
- HTML视图在搜索(ajax)更新期间丢失状态
- 我如何传递node.js服务器变量到我的angular/html视图
- HTML视图看不到AngularJS
- 为多个客户端呈现html视图
- 将html视图转换为图像
- 我可以在chrome控制台使用javascript测试动态html视图吗?
- 无法用Angular从HTML视图获取值到控制器.解决方案返回$scope变量undefined