0

で文字列連結を使用しようとしていng-repeatますui-select2:

    <select ui-select2 ng-model="selected2" style="width:300px;">
        <option ng-repeat="item in data[it + 'ems']" selected 
                value="{{item}}">{{item}}</option>
    </select>

(これは些細な例ですが、コードの再利用には文字列の連結が必要です。)

通常の で問題なく動作しますselect。ただし、uiSelect2エラーが発生します。

Error: Syntax Error: Token ']' is an unexpected token at column 6 of the expression ['ems']] starting at []].
    at Error (<anonymous>)
    at throwError (http://code.angularjs.org/angular-1.0.1.js:5830:11)
    at parser (http://code.angularjs.org/angular-1.0.1.js:5824:5)
    at http://code.angularjs.org/angular-1.0.1.js:6387:29
    at compileToFn (http://code.angularjs.org/angular-1.0.1.js:8040:16)
    at Object.Scope.$watch (http://code.angularjs.org/angular-1.0.1.js:7547:19)
    at http://angular-ui.github.com/angular-ui/build/angular-ui.js:911:19
    at nodeLinkFn (http://code.angularjs.org/angular-1.0.1.js:4223:13)
    at compositeLinkFn (http://code.angularjs.org/angular-1.0.1.js:3838:14)
    at compositeLinkFn (http://code.angularjs.org/angular-1.0.1.js:3841:12) <select ui-select2="" ng-model="selected2" style="width:300px;" class="ng-pristine ng-valid"> 

このフィドルで再現。

ここで何か間違ったことをしていますか?

4

1 に答える 1

1

これは、select-uiのスコープが分離されているためだと思います。また、ng-repeatも分離されているため、it変数がそのng-repeatの範囲外になります。

とにかくselectにng-optionsを使用することをお勧めします。(これは、おそらく、前述のスコープの問題を防ぐために機能します):

<select ui-select2 ng-model="selected2" style="width:300px;" 
  ng-options="item for item in data[it + 'ems']"></select>
于 2012-12-03T20:59:56.270 に答える