【问题标题】:ng-options with filter not working带有过滤器的 ng-options 不起作用
【发布时间】:2015-08-01 10:32:32
【问题描述】:

我的 HTML 中有一个这样的选择(moreCourses 是我的控制器的名称):

<select class="form-control" ng-options="course.courseId as course.courseName for course in moreCourses.coursesToshow track by course.courseId | filter: {show: true}" ng-model="course.newcourse" data-ng-change="moreCourses.showCourse(course)">
    <option style="display:none" value="">Choose a course</option>
</select>

这是包含用于选择的对象的数组:

var coursesToshow =
        [{
            courseName: 'English for Work',
            courseId: 'en-efw',
            show: true
        },
        {
            courseName: 'Practice Courses',
            courseId: 'en-practice',
            show: true
        },
        {
            courseName: 'English for Doctors',
            courseId: 'en-efd',
            show: true
        }];

一切正常,但过滤器不起作用,当用户选择一个选项时,属性“show”的值更改为“false”,我已经检查过了。

谢谢。

【问题讨论】:

  • 您需要先应用过滤器,然后添加 trackBy 表达式。 course.courseId as course.courseName for course in moreCourses.coursesToshow | filter: {show: true} track by course.courseId。见:docs.angularjs.org/api/ng/directive/ngOptions
  • 能否包含newCourse 模型和showCourse 方法
  • @Numyx 太好了,正在工作!谢谢

标签: javascript angularjs filter ng-options


【解决方案1】:

感谢@Numyx,解决方案是select 的顺序,应该是track byfilter 之后

<select class="form-control" ng-options="course.courseId as course.courseName for course in moreCourses.coursesToshow | filter: {show: true} track by course.courseId" ng-model="course.newcourse" data-ng-change="moreCourses.showCourse(course)">
    <option style="display:none" value="">Choose a course</option>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-04-02
    • 2015-11-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-24
    相关资源
    最近更新 更多