angular+selecte2(angular ng-repeat渲染)
一、页面代码
<select id="sponsorId" select2 ng-model="sponsorSelectedObj" ng-change="sponsorSelectedChange(sponsorSelectedObj)">
<option value="">共同创办人</option>
<!--注意,这里不是在select标签写的ng-option,而是在option标签中使用的ng-repeat,因为下面的directive指令是只对ng-repeat有效的,对ng-option无效-->
<option ng-repeat="s in sponsorSelected" value="{{s.ID}}" on-finish-render-filters>
</select>
二、js代码
(1)指令
app.directive('onFinishRenderFilters', function ($timeout) {
return {
restrict: 'A',
link: function(scope, element, attr) {
if (scope.$last === true) {
$timeout(function() {
scope.$emit('ngRepeatFinished');
});
}
}
};
});
(2)写在Controller里面的js,直接写在Controller下面的,不要写在Controller的某个方法,直接写在Controller里面就行了。ngRepeatFinished要和上面蓝色的字一致页面用的"-",js用驼峰的方式
$scope.$on('ngRepeatFinished', function (ngRepeatFinishedEvent) {
//下面是在table render完成后执行的js,下面的内容可以删掉,写自己的内容
angular.forEach($scope.sponsorSelected,function(item,key){
if(item.ID==$scope.topic.SponsorID){
$scope.sponorSelectedObj = item.ID;
$scope.topic.sponsorID = $scope.sponsorSelectedObj;
$("#sponsorId").val(item.ID).selecte2();//编辑的时候,默认选中下拉框的其中一个值
}
});
});
});
注意:当我们在angularJs的项目中用到一些jQuery的插件时,由于angular还没加载完成,插件的js会失效,这是我们就需要用到渲染,使页面加载完成之后,才调用插件的Js。这个渲染对angular的 ng-repeats是通用的,只需要在$scope.$on('ngRepeatFinished', function (ngRepeatFinishedEvent)中写自己的逻辑代码即可。
最新文章
- Qt开发中的实用笔记三--关于各种类的零碎知识点:
- 每天一个linux命令(30): chown命令
- 在VMware上安装CentOS-6.5 minimal - 安装VMware Tools
- RDIFramework.NET ━ 9.3 用户管理 ━ Web部分
- .net Web开发学习日志 —C/S和B/S结构区别
- 通过程序 VB.Net 或 C# 读取文本文件行数
- Linux命令行及Vim简单学习记录
- SpringMVC 初级操作
- Ajax数据爬取
- Matlab imshow, image, imagesc 三者详细分析
- Docker镜像加速器配置
- spring-boot(hello world)
- win10 关闭自动更新
- luogu1345 奶牛的电信 (最小割)
- cf水题
- YII创建应用
- (转)ldd 查看程序依赖库
- 20155322 2016-2017-2 《Java程序设计》第7周学习总结
- [转]C++之运算符重载(2)
- 【Android开发精要笔记】Android的Intent机制