Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/381.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 从文件选择指令更改值时更新ng模型_Javascript_Jquery_Angularjs - Fatal编程技术网

Javascript 从文件选择指令更改值时更新ng模型

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

我有一个自定义指令,用于检测file类型的输入何时发生更改。发生这种情况时,我希望找到另一个输入并更改其
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不适合我。我得调查一下原因。