Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angularjs 选择“模型更改时不更改”菜单_Angularjs - Fatal编程技术网

Angularjs 选择“模型更改时不更改”菜单

Angularjs 选择“模型更改时不更改”菜单,angularjs,Angularjs,我有一个选择菜单,如下所示: <select ng-model="selected_event_type.event_type" ng-options="event_type.name for event_type in events.event_type_views"> <option value="">Event type</option> </select> 我想我知道问题所在。您正在将第一个列表绑定到列表事件。事件

我有一个选择菜单,如下所示:

<select ng-model="selected_event_type.event_type"
        ng-options="event_type.name for event_type in events.event_type_views">
    <option value="">Event type</option>
</select>

我想我知道问题所在。您正在将第一个列表绑定到列表
事件。事件类型\u视图
。并将模型设置为
选定的事件类型。事件类型
。选择elment时,模型将更新到所选对象(例如
{name:'Collision',partial:'views/events/Collision.html'}

currentEventChanged
方法无法创建新对象并设置值,因为比较是基于对下拉列表中所选内容的引用进行的。方法中的逻辑不应该创建新对象,而应该从现有列表中选择对象,如

$scope.selected_event_type.event_type= $scope.events.event_type_views[0]; //Logic to search the array events.event_type_views and find an element and assign

没有从普朗克身上挣脱code@ThomasPons请不要那样做。问题应该是独立的。如果你不断要求人们回答他们的问题,并把他们变成“笨蛋”,你就破坏了这个网站的目的,降低了我们问答的质量。@meagar抱歉,但这些问题是技术性的,你更喜欢一个plunkr和两个答案,一个有好的解决方案的快乐的家伙,或者一个有50个答案的帖子和一个失望的家伙。。。我不关心我关心的是那些difficulties@ThomasPons那么这不是适合你的网站。是的,就是这样!我想如果我将selected_event_type.event_type设置为一个对象,该对象的属性和值与events.event_type_视图中相应的属性和值相同,那么select将“匹配”它们并自我更新。不过你说得对,它实际上是通过引用进行比较的,而不是通过属性/值进行比较的。
$scope.selected_event_type = {
    event_type: null
};

$scope.events = {
    event_type_views: [
        {name: 'Collision', partial: 'views/events/collision.html'},
        {name: 'Boundary', partial: 'views/events/boundary.html'},
        {name: 'Timer', partial: 'views/events/timer.html'},
        {name: 'Input', partial: 'views/events/input.html'}
    ]
}

$scope.currentEventChanged = function () {
    var current_event_type;
    var current_event_partial;

    for (var key in $scope.current_event.event_type) {
        current_event_type = key.charAt(0).toUpperCase() + key.slice(1);
    }

    current_event_partial = 'views/events/' + current_event_type + '.html';

    $scope.selected_event_type = {
        event_type: {
            name: current_event_type,
            partial: current_event_partial
        }
    };
};
$scope.selected_event_type.event_type= $scope.events.event_type_views[0]; //Logic to search the array events.event_type_views and find an element and assign