选择的AngularJS模型返回undefined

zok*_*zok 2 javascript angularjs angularjs-controller angular-ngmodel

我正在尝试检索a的当前选项的值select,但它返回undefined(我希望它返回一个对象).

标记:

<div ng-app ng-controller="MyCtrl">
    <select ng-model="selectedLocal" ng-options="item.Nome for item in locais" ng-change="localSelectChange()">
        <option value="">Locais</option>
    </select>
</div>
Run Code Online (Sandbox Code Playgroud)

控制器:

function MyCtrl($scope) {
    $scope.locais = [{
        ID: 109,
        Nome: 'Aeroporto Internacional Hercilio Luz'
    }, {
        ID: 161,
        Nome: 'Koxixos'
    }, {
        ID: 184,
        Nome: 'Praça XV de Novembro'
    }];

    $scope.localSelectChange = function() {
        alert('$scope.selectedLocal: ' + $scope.selectedLocal); // returns undefined
    }
}
Run Code Online (Sandbox Code Playgroud)

奇怪的是我创建了这个jsfiddle以重现问题,使用完全相同的代码,并且它可以工作.

更新:

我在这里创建了一个plunkr ,我那里复制了这个问题.

第一个选择包含在具有自己的控制器"MyCtrl"的div上,并且它按预期工作,因为我能够从ng-change事件处理函数中检索模型.

第二个选择"属于"DashCtrl,整个Dash选项卡视图控制器.当我尝试从ng-change事件处理函数中检索模型时,它返回undefined.这是为什么?

小智 11

尝试将"$ scope.selectedLocal.Nome"更改为"this.selectedLocal.Nome";

当我尝试使用包含内部控制器时,我有类似的错误...接缝范围丢失.