我正在尝试使用指令显示选择框。但是我的默认选项是不显示。
我喜欢这样
<div>
<select ng-init="userselected = vm.data[0]"
ng-model="userselected"
ng-options="option.name for option in vm.data">
</select>
</div>
这是我的代码http://plnkr.co/edit/Q1e8u0okOa4looLcb2YO?p=preview
.controller('f',function($http){
var l=this;
$http.get('data.json').success(function(data){
l.data=data;
})
})
我们可以在调用控制器并使用resolve加载html文件之前加载数据吗?
我们可以在调用控制器并使用resolve加载html文件之前加载数据吗?
是的。这样做的方法是在初始化连接到视图的所述部分的控制器之前,解析要在视图上公开的数据集。
我可以想到三种解决方法:
// state definition
.state('myState', function () {
resolve: {
dataset: function (Service) {
return Service.getData();
}
},
controller: 'Controller'
})
// controller definition
.controller('Controller', function (dataset) {
this.dataset = dataset;
})
解析的数据将在状态定义所附的控制器中以给定名称提供(通过定义本身,或ng-controller
在状态模板的根处带有)。
// route definition
.when('/path', {
resolve: {
dataset: function (Service) {
return Service.getData();
}
},
controller: 'Controller'
})
// controller definition
.controller('Controller', function (dataset) {
this.dataset = dataset;
})
几乎与ui路由器示例相同。
等待承诺解决,以延迟模板的呈现。
.controller('outer', function ($timeout) {
this.resolved = false;
this.dataset = [];
$timeout(function () {
this.resolved = true;
this.dataset = [ {}, {} ];
}.bind(this), 1500);
})
.controller('inner', function () {
console.log('I just ran!');
})
<div ng-controller="outer as o">
<div ng-controller="inner as i" ng-if="o.resolved">
{{o.dataset}}
</div>
</div>
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句