日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

angular 指令渲染_Angular JS指令有后期渲染回调吗?

發布時間:2025/4/5 javascript 43 豆豆
生活随笔 收集整理的這篇文章主要介紹了 angular 指令渲染_Angular JS指令有后期渲染回调吗? 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

我剛剛得到指令,將模板插入到其元素中,如下所示:

# CoffeeScript

.directive 'dashboardTable', ->

controller: lineItemIndexCtrl

templateUrl: ""

(scope, element, attrs) ->

element.parent('table#line_items').dataTable()

console.log 'Just to make sure this is run'

# HTML

我還使用了一個名為DataTables的jQuery插件。它的一般用法是這樣的:$('table#some_id')。dataTable()。您可以將JSON數據傳遞到dataTable()調用中以提供表數據,或者可以將數據存儲在頁面上,其余的將由數據完成。.我正在做后者,HTML頁面上已經有行。

但是問題是我必須在準備好DOM之后在table#line_items上調用dataTable()。我上面的指令在將模板附加到指令的元素之前,先調用dataTable()方法。有沒有一種方法可以在追加之后調用函數?

謝謝您的幫助!

安迪回答后的更新1:

我想確保鏈接方法僅在頁面上所有內容之后都被調用,因此我更改了指令進行了一些測試:

# CoffeeScript

#angular.module(...)

.directive 'dashboardTable', ->

{

link: (scope,element,attrs) ->

console.log 'Just to make sure this gets run'

element.find('#sayboo').html('boo')

controller: lineItemIndexCtrl

template: "

}

我確實在div#sayboo中看到了“ boo”。

然后我嘗試我的jQuery數據表調用

.directive 'dashboardTable',? ->

{

link: (scope,element,attrs) ->

console.log 'Just to make sure this gets run'

element.parent('table').dataTable() # NEW LINE

controller: lineItemIndexCtrl

templateUrl: ""

}

那里沒有運氣

然后我嘗試添加超時:

.directive 'dashboardTable', ($timeout) ->

{

link: (scope,element,attrs) ->

console.log 'Just to make sure this gets run'

$timeout -> # NEW LINE

element.parent('table').dataTable()

,5000

controller: lineItemIndexCtrl

templateUrl: ""

}

那行得通。因此,我想知道非計時器版本的代碼出了什么問題?

總結

以上是生活随笔為你收集整理的angular 指令渲染_Angular JS指令有后期渲染回调吗?的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。