废话不多说,直接上代码。

function MySelectCtrl($scope)
{
$scope.Model = [
{
id: 10002,
MainCategory: '男',
ProductName: '水洗T恤',
ProductColor: '黑'
},
{
id: 10004,
MainCategory: '女',
ProductName: 'V领短袖',
ProductColor: '红'
},
{
id: 10006,
MainCategory: '男',
ProductName: '圆领长袖',
ProductColor: '白'
}]; $scope.selected = 10002;
}

  

<select ng-model="selected" ng-options="m.id as (m.ProductColor + ' - ' + m.ProductName) for m in Model">
<option value="">-- 选择一个试试 --</option>
</select>
  • 建议不要直接传resource给api,尽量是字符串或整型(比如绑定的是ng-model="selected")
  • 不要管angular生成出来的<option>...</option>中的value是啥,想传什么值给后端就在ng-options=""中的第一个参数写,如本例是m.id
  • ngOptions 自动选中是根据reference来的,所以ng-model中绑定的值应当是与options数组同源如下:
$scope.getBeacon = function (id) {
return Beacon.get({id: id}).$promise;
}; $scope.getVendors = function () {
return Vendor.query({}).$promise;
}; $q.all([$scope.getVendors(), $scope.getBeacon($scope.beacon.id)])
.then(function (promises) {
$scope.vendors = promises[0];
$scope.beacon = promises[1];
$scope.beacon.vendor = $scope.vendors[_.findIndex($scope.vendors, $scope.beacon.vendor)];
}); // HTML
<div class="form-group">
<label for="vendor">厂家</label>
<select class="form-control" id="vendor" ng-model="beacon.vendor" ng-options="vendor as vendor.name for vendor in vendors">
<option value="" ng-if="!beacon.vendor">-- 请选择厂家 --</option>
</select>
</div>

写下这些希望再不要再被angular的默认选中和传值问题干扰了!

AngularJS之ng-options的best practise的更多相关文章

  1. 走进AngularJs(二) ng模板中常用指令的使用方式

    通过使用模板,我们可以把model和controller中的数据组装起来呈现给浏览器,还可以通过数据绑定,实时更新视图,让我们的页面变成动态的.ng的模板真是让我爱不释手.学习ng道路还很漫长,从模板 ...

  2. 走进AngularJs(八) ng的路由机制

    在谈路由机制前有必要先提一下现在比较流行的单页面应用,就是所谓的single page APP.为了实现无刷新的视图切换,我们通常会用ajax请求从后台取数据,然后套上HTML模板渲染在页面上,然而a ...

  3. [AngularJS] angular-formly: Default Options

    angular-formly allows you to keep your forms as DRY as possible. TheoptionsTypes property is one way ...

  4. AngularJS 学习之路(1)

    AngularJS 是一个 JS 框架,适用于以数据操作为主的 SPA (Single Page Application)应用. 不再是 "先查找元素在操作元素",所有操作都以 & ...

  5. AngularJS进阶学习

    参考:http://***/class/54f3ba65e564e50cfccbad4b 1. AJAX:Asynchronous JavaScript and XML(异步的 JavaScript ...

  6. 《Node.js+MongoDB+AngularJS Web开发》读书笔记及联想

    总体介绍 <Node.js+MongoDB+AngularJS Web开发>,于2015年6月出版,是一本翻译过来的书,原书名为<Node.js,MongoDB and Angula ...

  7. 基于angularJS和requireJS的前端架构

    1.概要描述 1.1.angularJS描述:angularJS是可以用来构建WEB应用的,WEB应用中的一种端对端的完整解决方案.通过开发者呈现一个更高层次的抽象来简化应用的开发.最适合的就是用它来 ...

  8. 拥抱AngularJS

    文中一些地方AngularJS简称ng 简介: ng诞生于2009年,由Misko Hevery等创建,后被Google收购,为克服HTML在构建应用上的不足而设计. 是一款优秀的前端JS框架,核心特 ...

  9. angularJS之使用过滤器转化输出 (angularJS系列最后一篇)

    在视图模板中使用过滤器 过滤器也是一种服务,负责对输入的内容进行处理转换,以便更好地向用户显示. 过滤器可以在模板中的{{}}标记中使用: {{ expression | filter:arg1:ar ...

  10. 25个超有用的 AngularJS Web 开发工具

    AngularJS是为了克服HTML在构建应用上的不足而设计的.HTML是一门很好的为静态文本展示设计的声明式语言,改善了JavaScript. 下面我要说的就是25个超有用的AngularJS工具, ...

随机推荐

  1. 传输层(3)-缓冲区大小及限制、TCP输出

    3.缓冲区大小及限制 影响IP数据报大小的限制. 1)IPv4数据报,最大大小是65535. 2)硬件规定的MTU.以太网的MTU是1500字节.SLIP链路1006字节或296字节 3)路径MTU. ...

  2. the server quit without updating pid file (/var/lib/mysql/localhost.localdomain.pid)

    前几天装的mysql,用的还挺爽的,第二天再用就不行了,报的错误如标题.网上也是众说纷纭,可能有很多原因会导致这种错误吧.我用的是将Mysqld这个进程杀掉,就可以启动mysql了

  3. Storm-隔离调度器

    这个版本的亮点是新的“隔离调度器”,使得在一些拓扑中分享集群变得简单和安全.隔离调度程序允许您指定哪些拓扑应该“孤立”, 这意味着它们运行在集群中的一组专用的机器,没有其他的拓扑将运行.这些孤立的拓扑 ...

  4. C#窗体文件的操作

    文件的创建使用File类下的AppendAllText("要保存的数据","文件完整路径")方法. string fileMove = @"C:\te ...

  5. git操作日志

    切换分支 git checkout plugin 更新文件 git pull origin master 合并分支 主分支合并到分支 git checkout dev_2 git merge mast ...

  6. 使用oh-my-zsh后导致的卡顿问题

    现象是每次cd和ll时都会被卡住很长时间根本受不了,最后在官方github查明原因是使用的主题会自动获取git信息,可以使用以下命令禁止zsh自动获取git信息,解决卡顿问题 git config - ...

  7. Qt4.8.5 QtWebKit QWebView 用户栈检查崩溃问题的思考

    最近在项目中,发现在使用Qt4.8.5 提供的QWebView与网页交互的时候, m_pWebView->page()->mainFrame()->evaluateJavaScrip ...

  8. malloc 函数工作机制(转)

    malloc()工作机制 malloc函数的实质体现在,它有一个将可用的内存块连接为一个长长的列表的所谓空闲链表.调用malloc函数时,它沿连接表寻找一个大到足以满足用户请求所需要的内存块.然后,将 ...

  9. gcd 最小公约数

    int gcd(int a, int b) { ? a : gcd(b, a % b); }

  10. 判断当前VC是不是正在展示的活跃页面

    viewController.isViewLoaded && viewController.view.window