angularjs自定義指令函式傳參

2021-09-13 01:50:24 字數 1073 閱讀 6408

在編寫匯入指令的時候,需要將函式繫結到指令中,並傳入乙個引數。

首先指令的js檔案如下,基本的繫結引數和繫結函式,沒有什麼說的:

.directive('yunzhiimport', function() ,

templateurl: 'views/directive/yunzhiimport.html',

restrict: 'e',

link: function postlink(scope) ;

self.init();}};

});然後指令的v層:

匯入

上傳

這裡直接呼叫兩個繫結的函式。然後這裡我們在呼叫import()函式的時候,將jsonfile作為引數傳給它(jsonfile就是是我們將要匯入的檔案物件)。

這時去c層列印一下獲取到的引數:

undefined,我們未能獲取到引數。

因為我們在呼叫指令的時候,是使用的待括號的呼叫方式:

因為這樣的好處是,&繫結之後,可以直接使用函式。根據以往的經驗猜測,他是將函式的執行後繫結在指令上,而這個時候還沒有長傳檔案,所以導致了undefined

這裡解決就需要多做一點工作,不能直接繫結函式的執行結果,而是繫結函式體:

唯一的區別就是去掉了import的括號。然後還需要在指令中做一點處理:

// 匯入檔案

scope.importfile = function()

我們又寫了乙個函式,用來觸發繫結c層的函式。然後在函式執行的時候,將jsonfile作為引數傳給c層的函式。

問題解決!

相關參考:

angularJs自定義指令

e 元素 a 屬性,預設值 c 類名 m 注釋 directive my directive expression priority 優先順序 用來表示指令使用的優先順序 如果乙個元素上具有兩個優先順序相同的指令,宣告在前面的那個會被優先呼叫。如果其中一 個的優先順序更高,則不管宣告的順序如何都會被...

AngularJS自定義指令

自定義的指令定義 1.directive 方法可以接受兩個引數,第乙個引數是指令的名字,第二個引數是函式,第二個引數用來返回指令的具體內容。2.指令的引數包括 restrict eacm 分別對應元素 屬性 類名 注釋 主要體現在呼叫指令時的不一樣 優先順序 ngrepeat,來定該自定義標籤的優先...

Angularjs 自定義指令

指令的作用可以簡單的描述為實現語義化的標籤,比如你在移動端h5應用中,有個經常用的功能,比如通訊錄的功能,不同的頁面都要用到,這時你可以將其封裝為指令,在使用的時候可以通過這樣的語義化的標籤直接在頁面中使用即可。首先實現乙個helloworld的例子,讓我們先上手自定義指令,先體會下指令的妙處。定義...