angularjs选择没有ng-options或静态选项

Adi*_*cha 7 angularjs angularjs-ng-options

如何在angularjs中使用静态选择.

我想创建一个带有statc值的change事件的选择模型.

<form ng-controller="mycontroller">
    <select class="form-control"  name='modelid' ng-model="modelid"  ng-change="modelidchange">
        <option value="-1">select </option>       
        <option value='4'>Static text 4</option>
        <option value='1'>Static text 1</option>
        <option value='2'>Static text 2</option>                 
    </select>
</form>
Run Code Online (Sandbox Code Playgroud)

我的控制器:

angular.module('app').controller('chapter',function($scope,$http) {
    console.log('ok')
    $scope.id = modelid
    alert($scope.id)
});
Run Code Online (Sandbox Code Playgroud)

我只想获得de model值,但是这个错误:

Error: ngOptions:iexp
Invalid Expression
Run Code Online (Sandbox Code Playgroud)

我不使用NG-OPTIONS只是静态选择.

有人能帮助我吗?

Den*_*ann 1

你首先需要稍微改变你的 AngularJS 代码......

由此

angular.module('app').controller('chapter',function($scope,$http){
                   console.log('ok')
    $scope.id = modelid
    alert($scope.id)
});
Run Code Online (Sandbox Code Playgroud)

对此

angular.module('app').controller('chapter',function($scope,$http){
    $scope.id = $scope.modelid;
    alert($scope.id);
});
Run Code Online (Sandbox Code Playgroud)

接下来你的控制器不匹配... 在 HTML 中你的控制器是

<form ng-controller="mycontroller">
Run Code Online (Sandbox Code Playgroud)

在 Angular 中你的控制器是

.controller('chapter'...
Run Code Online (Sandbox Code Playgroud)

所以从这个改变它

<form ng-controller="mycontroller">
Run Code Online (Sandbox Code Playgroud)

对此

<form ng-controller="chapter">
Run Code Online (Sandbox Code Playgroud)

最后但并非最不重要 :-)

您需要在控制器中使用 ng-change 定义要调用的函数...因此将整个代码更改为以下...

超文本标记语言

<form ng-controller="chapter">
    <select class="form-control"  name='modelid' ng-model="modelid"  ng-change="modelidchange()">
    <option value="-1">select </option>       
    <option value='4'>Static text 4</option>
    <option value='1'>Static text 1</option>
    <option value='2'>Static text 2</option>
</select>
Run Code Online (Sandbox Code Playgroud)

angular.module('app').controller('chapter',function($scope,$http){
    $scope.modelidchange = function () {
        $scope.id = $scope.modelid;
        alert($scope.id)
    }
});
Run Code Online (Sandbox Code Playgroud)