2016-03-11 79 views
-1

我正在使用AngularJS,並且我有一個索引頁,在此頁面中我有一個<div ui-view></div>。 當我鍵入一些url例如#/offers/new我打電話給一個頁面,例如new-offer.html這將被注入ui-view在視圖中執行javascript代碼

而我有一個javascript代碼塊,我打電話給index.html頁面,在這個javascript代碼中,我想要做一些html處理,我想處理的html代碼在`new-offer.html頁面中。

所以這裏是發生了什麼,當我加載index.html它執行JavaScript代碼不找到HTML代碼中的index.html的處理,然後當我打電話#/offers/newnew-offer.html將注入什麼都不會發生。

這是我的index.html:

<!doctype html> 
<html> 
... 

    <div ui-view></div> 

    ... Code 
    ... Other scripts 
<script src="scripts/app.js"></script> 
<!--TEXT EDITOR JS--> 
<script src="scripts/js/editor.js"></script> 
    </body> 

</html> 

,這是new-offer.html

... Code 
      <div class="col-md-12"> 
      <div class="text-editor-box"> 
       <textarea class="txtEditor"></textarea> 
      </div> 
      </div> 
... Code 

,這是我在index.html調用腳本,我想,當我把它稱爲被執行#/offers/new

//TEXT EDITOR 
    if ($('.txtEditor').length) { 
    $(".txtEditor").Editor(); 
    } 

不是t這裏無論如何解決這個問題,而無需調用new-offer.html頁面內的JavaScript代碼?我的意思是不執行該JavaScript代碼,直到我將new-offer.html中的html代碼注入index.html

編輯1:

我試圖用指令如下:

在app.js

.directive('textEditordir', function() { 
    return { 
    template: '<div class="text-editor-box"><textarea class="txtEditor"></textarea></div>' 
    }; 
}); 

new-offer.html

<div text-editordir></div> 

但儘管如此,該javascript代碼無效

+0

你沒有提到的代碼做什麼,但總的來講創建指令 - 如果你想要在AngularJS中使用DOM,你應該使用指令。請閱讀此處:https://docs.angularjs.org/guide/directive – AdirAmsalem

+0

@AdirAmsalem請檢查我所做的修改 –

+0

通常,JQuery可以開箱即用。嘗試angular.element來創建自己的DOM操作。 https://docs.angularjs.org/api/ng/directive/ngJq https://docs.angularjs.org/api/ng/function/angular.element你正在嘗試的可能不是直接可能的。嘗試在路由,配置定義指令或備用方法 – Gary

回答

1

你可以爲這個喜歡原樣

app.directive('editor', function(){ 
return{ 
    restrict:'A', 
    link:function(scope,element,attr) 
      { 
       $(element).Editor(); 
      } 

} 

}); 

現在你可以在HTML中使用此原樣

<textarea class="txtEditor" editor></textarea> 
+0

我試過這個,我得到的$是不是一個函數,即使我已經聲明jQuery之前調用app.js –

+0

嘗試使用$符號像 - element.Editor(); –

+0

https://docs.angularjs.org/api/ng/function/angular.element – Gary