javascript - select from 指令的 Angular 动态更改选项

标签 javascript angularjs

我正在尝试编写指令,为带有 ng-options 的 select 对象添加一个新值。

但是当我将此指令添加到select 时,项目会消失。

小例子:

html:

<div ng:app="editor" ng:controller="BaseController">
    <select ng-model='m' ng-options='i.Id as i.Val for i in model.items' add-new-val='model.items'></select>
    <select ng-model='m' ng-options='i.Id as i.Val for i in model.items'></select>
</div>

JavaScript:

var module = angular.module('editor', []);

function BaseController($scope){
    $scope.model = {
        items: [{Id:1, Val:"_1"}]
    }

    $scope.m = 1;
}

module.directive('addNewVal',function(){
    return {
        scope:{
            items: '=addNewVal'
        },
        controller: function($scope){
            $scope.items.push({Id: 3, Val: "Have a nice day"});
        }
    }

})

关于 jsfidle .

怎么了?

最佳答案

作为ranru建议,你可以重写你的指令,这样它就不会清除 select 指令的范围。像这样:

module.directive('addNewVal',function(){
    return {
        controller: function($attrs, $scope){         
            var data = $scope.$eval($attrs.addNewVal);
            data.push({Id: 3, Val: "Have a nice day"});
        }
    }    
})

关于javascript - select from 指令的 Angular 动态更改选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19704423/

相关文章:

javascript - 如何设置在 angularjs 过滤器中搜索的最小字符数?

javascript - 将 docx 下载为 blob

angularjs - 如何在 AngularJS 中预览上传的文件

c# - javascript 中的 PageMethods 作为函数的返回

javascript - 在 JS 文件中导出默认的两个函数?

javascript - 如何在延迟时间后执行此 JavaScript 调用?

javascript - Angular JS 级联通知

javascript - jQuery 和 AngularJS 不能一起工作

javascript - 如果不存在指示的下拉表单,则不执行任何操作

javascript - Node.js 代理请求并使用 AES 对其进行加密