Javascript 从文件选择指令更改值时更新ng模型
我有一个自定义指令,用于检测file类型的输入何时发生更改。发生这种情况时,我希望找到另一个输入并更改其Javascript 从文件选择指令更改值时更新ng模型,javascript,jquery,angularjs,Javascript,Jquery,Angularjs,我有一个自定义指令,用于检测file类型的输入何时发生更改。发生这种情况时,我希望找到另一个输入并更改其ng模型。我似乎无法触发模型更改。我做了研究,找不到答案。这就是我提到的问题 //我的控制器 $scope.headShotUpload=函数(事件){ 变量路径=“”, id=event.target.id.toString(), files=event.target.files, tempString=''; 如果(id.includes('nfl')){ path=$scope.fil
ng模型
。我似乎无法触发模型更改。我做了研究,找不到答案。这就是我提到的问题
//我的控制器
$scope.headShotUpload=函数(事件){
变量路径=“”,
id=event.target.id.toString(),
files=event.target.files,
tempString='';
如果(id.includes('nfl')){
path=$scope.filepath.headShot.nfl+'/'+文件[0]。名称;
tempString=id.replace(“nfl-”,“”);
var labelInputId=tempString+'-path'
变量输入=$(labelInputId);
输入.val(路径);
input.trigger('input');
}
};
//我的指令
角度。模块('app')
.directive('customOnChange',function(){
返回{
限制:“A”,
链接:函数(范围、元素、属性){
var onChangeHandler=scope.$eval(attrs.customOnChange);
元素绑定('change',onChangeHandler);
}
};
});代码>
NFL
NCAA
在AngularJS应用程序中,默认情况下,指令可以访问父作用域。您可以尝试使用$parent设置父范围,并且父范围必须是对象,而不是单个命名范围。不能直接命名变量,例如scope.parentModel=newName,因为它是基元类型(即字符串、数字或布尔类型),并且“写入”总是指向本地范围/对象。对对象属性的任何写入(无论是从父对象还是子对象)都将转到该对象
angular.module('app')
.directive('customOnChange', function() {
return {
restrict: 'A',
link: function (scope, element, attrs) {
var onChangeHandler = function () {
scope.$eval(attrs.customOnChange);
scope.$parent.obj.parentModel = 'newVal';
}
element.bind('change', onChangeHandler());
}
};
});
您好,如果有人遇到这个问题,我用document.getElementById()替换jquery($)解决了这个问题,它成功了。出于某种原因,jquery不适合我。我得调查一下原因。