2

何が機能しているか:ng-optionsはすべての名前が含まれており、ドロップダウン リストに表示されます。

問題:

  1. 最初に何も選択されていない場合、「名前を選択...」というテキストが表示されます。でも今は空いています。
  2. 多くの質問が寄せられていることは承知していますが、このケースでは解決策が見つかりませんでした。これらのオプションのいくつかを選択すると、エラー

「エラー: [$compile:nonassign] ディレクティブ 'fileWidget' で使用される式 'undefined' は割り当てられません!」発生しました。

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>

何か案は?

4

1 に答える 1

2

するには、次の要素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>

オブジェクトに割り当てようとしていますが、割り当てられないため、non-assignableエラーが発生します。選択したオプションの値を含むことができる変数が必要です。試してください:

ng-model="selectedFile.name"
于 2015-05-08T19:27:56.320 に答える