所以我需要在指令中加载html模板后调用函数。
app.directive('myDivModal',function () {
var controller = ['$scope',function ($scope) {
//some code here..
}];
return {
restrict: "E",
scope: {
myprops: '=props'
},
controller: controller,
templateUrl: 'modal.html',
link:function (scope, elem, attr,controller,transcludeFn) {
$('#firstId').datepicker({
format: 'dd-mm-yyyy'
});
}
}
});
和
<input type="text" id="{{myprops.id}}" readonly="readonly" ng-model="start" >
<input type="text" id="{{myprops.id}}" readonly="readonly" ng-model="end" >
我需要#firstId
来绑定id="{{myprops.id}}Dp1"
..但是这个函数在HTML之前启动我几乎尝试了所有内容,比如post,compile post等等,但没有任何工作可以帮助我。
答案 0 :(得分:0)
在链接中使用$ timeout函数:
// You might need this timeout to be sure it runs after DOM render.
$timeout(function () {
//your code
$('#firstId').datepicker({
format: 'dd-mm-yyyy'
});
}, 0,false);
这可能是Execute Javascript after directive template has been loaded
的重复问题答案 1 :(得分:0)
我认为@ DB.Null是正确的尝试将类属性添加到您的html元素然后应用:
$('.startDate').datepicker({
format: 'dd-mm-yyyy'
});
答案 2 :(得分:0)
更新您的控制器:
for y in proxylist:
proxylist = y.split('\n') # avoid ambuguity, use another name
同时将其添加到您的模板中:
var controller = ['$scope',function ($scope) {
...
$scope.$on('my-tpl-ready', function() {
$('#firstId').datepicker({
format: 'dd-mm-yyyy'
});
});
}];