在編寫匯入指令的時候,需要將函式繫結到指令中,並傳入乙個引數。
首先指令的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的例子,讓我們先上手自定義指令,先體會下指令的妙處。定義...