Angularjs ng模型在select指令中不起作用

Angularjs ng模型在select指令中不起作用,angularjs,angularjs-directive,angularjs-model,Angularjs,Angularjs Directive,Angularjs Model,工作原理:ng选项包含所有名称,并显示在下拉列表中 问题: 开始时,如果未选择任何内容,则应显示文本“选择名称…”。但它现在是空的 我知道有人问了很多问题,但我没有找到解决这个问题的办法。 如果我选择其中一些选项,则会显示错误 错误:[$compile:nonassign]表达式“undefined”与一起使用 发生指令“fileWidget”不可分配 GeometryService.js angular.module('COMLEAMclient') .factory('GeometrySer

工作原理:
ng选项
包含所有名称,并显示在下拉列表中

问题:

  • 开始时,如果未选择任何内容,则应显示文本“选择名称…”。但它现在是空的
  • 我知道有人问了很多问题,但我没有找到解决这个问题的办法。 如果我选择其中一些选项,则会显示错误
  • 错误:[$compile:nonassign]表达式“undefined”与一起使用 发生指令“fileWidget”不可分配

    GeometryService.js

    angular.module('COMLEAMclient')
    .factory('GeometryService', function($resource) {
    
      var selectedGeometry = {name:'Select name...'};
    }
    
    FileWidgetDirective.js

    angular.module('COMLEAMclient')
    .directive('fileWidget', ['$log', '$parse', function($log, $parse) {
    
            return {
                scope: {
                    data: '=',
                    selectedFile: '=',
                    updateSelection: '&',
                    selected: '=',
                    onReadFile: '&',
                },
               ....
            }
        )
    }
    
    InputController.js

    <div file-widget data="iCtrl.geometryFiles"  update-selection= "iCtrl.setSelectedGeometry(name)" selectedFile= "iCtrl.selectedGeometryFile" on-read-file="iCtrl.saveGeometryFiles(file,name)"></div>
    
    
    
    FileWidget.html

    <select class="form-control"
        ng-options="elem.name for elem in data"
        ng-model="selectedFile"
        ng-change="onSelectionChange()">
    </select>
    
    
    


    有什么想法吗?

    为了让
    选择名称…
    您需要一个
    选项
    元素:

    <select class="form-control"
        ng-options="elem.name for elem in data"
        ng-model="selectedFile"
        ng-change="onSelectionChange()">
        <option value="">Select name...</option>
    </select>
    

    我储存了我的代码以选择名称。。。但还是一样的例外。可能不止这些。@MarcelTinner可能
    selectedFile.name
    也是不可分配的。您可以共享该obj吗?它应该在GeometryService.js-->var selectedGeometry={name:'Select name…}中打开;我不建议直接从视图绑定到服务变量。把它放在控制器的某个地方。现在看起来您的变量是GeometryService的私有变量。
    ng-model="selectedFile.name"