angularjs - ng-model 不适用于 select 指令

标签 angularjs angularjs-directive angularjs-model

有效内容:ng-options 包含所有名称,并显示在下拉列表中。

问题:

  1. 如果开始时未选择任何内容,则应显示文本“选择名称...”。但现在是空的。
  2. 我知道这个问题已经被问了很多,但我没有找到针对此案例的解决方案。 如果我选择其中一些选项,则会出现错误

"Error: [$compile:nonassign] Expression 'undefined' used with directive 'fileWidget' is non-assignable!" occured.

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 name...,您需要有一个option元素:

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

您正在尝试分配给一个不可分配的对象,这就是您收到不可分配错误的原因。您需要有一个可以包含所选选项的值的变量,请尝试:

ng-model="selectedFile.name"

关于angularjs - ng-model 不适用于 select 指令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30131356/

相关文章:

javascript - 编辑 orderby-property 时 AngularJS orderby 不起作用

javascript - Angular.js 值未保存在文本框中的范围内

javascript - Angularjs谷歌地图标记和panTo不起作用

unit-testing - AngularJS - 单元测试文件上传

javascript - 如何在 ng-click Angular JS 上显示 div 并执行任务?

javascript - 嵌套指令之间的不同通信方式

javascript - Angular.js 和 Fabric.js : Fabric canvas changes behavior once code is moved to a Angular Directive

angularjs - Angular 1 - 将其余调用的数据共享到另一个 Controller

javascript - 更新 ng-options 使用的数组,刷新选定的对象

javascript - AngularJS:目录结构(例如模块化编程)会影响加载时间吗?