我正在使用使用nodejs作为后端的angularjs的项目,为此我正在angularjs中构建一个单页应用程序(spa)。 因此,我需要您的帮助,因为有两种状态,例如状态A和它的子状态aa(与我的项目有关)。 所有状态共享一个位于主模板文件上的公共控制器, 好的。 现在,我要上传的文件代码是在子状态a模板文件中编写的,当我使用控制器的作用域访问该文件变量时,我将其未定义进行控制台。我不明白为什么我显示未定义,但是当我在子状态aa上单独应用控制器时,它将控制文件值。但是为什么这样做,我不想要,请有人帮我解决这个问题。
这是我的状态码aa,用于文件上传
<div>
<input type = "file" file-model = "avatarFile"/>
</div>
对于文件上传,我正在使用一条指令,该指令为我提供如下文件
app.directive('fileModel', ['$parse', function ($parse) {
return {
restrict: 'A',
link: function (scope, element, attrs) {
var model = $parse(attrs.fileModel);
var modelSetter = model.assign;
element.bind('change', function () {
scope.$apply(function () {
modelSetter(scope, element[0].files[0]);
});
});
}
};
}]);
最后我的主要模板代码在这里
<html lang="en" ng-app="app">
<body ng-controller="lugbeeSPACtrl">
<div ui-view></div>
</body>
</html>
,我还想告诉您状态,模板也位于单独的html文件中。 如果需要任何帮助以重新理解该问题,请提供信息,但请解决我的问题。谢谢。