簡體   English   中英

角指令不起作用Chrome打包的應用

[英]Angular Directives Not Working Chrome Packaged App

這是這個jsfiddle: http : //jsfiddle.net/6XneN/18/

這是打包應用程序的HTML:

<!DOCTYPE html>
    <html ng-app ng-csp>
        <head>
        </head>
        <title>Chrome Learning App</title>
        <body>
            <div ng-app='test'>
                <hello>Test</hello>
            </div>
            <script src="angular.min.js"></script>
            <script src="files.js"></script>
        </body>
     </html>

另外,這是Javascript:

angular.module('test', []).directive('hello', function() {
    return {
        restrict : 'E',
        template : '<div>WHY ISNT THIS WORKING</div>',
        replace: true,
    };
});

當在JSFiddle上將代碼自動換行設置為“ No Wrap-in”時,該指令可以正常工作。 但是,當在JSFiddle上選擇onload時,它不起作用。 我認為這就是該指令不適用於Chrome Packaged Apps的原因。 我沒有任何錯誤,只是沒有顯示更改。 關於如何解決此問題有任何想法嗎?

PS:我的manifest和background.js文件都很好,所以我確定這不是問題。

在您的JSFiddle中,Angular尋找一個“測試”模塊,但找不到它,因為您的模塊定義位於onLoad事件處理程序中,該處理程序在angular lib解析DOM后執行。 如果您檢查控制台,應該會看到一個

未捕獲的錯誤:無模塊:測試。

在一個Chrome打包的應用程序中,我剛剛創建了一個簡單的應用程序並運行您的代碼段,它可以與Angular 1.0.7一起正常工作:

manifest.json的:

{
  "manifest_version": 2,
  "name": "Test angular",
  "version": "1",
  "app": {
    "background": {
      "scripts": ["main.js"]
    }
  }
}

main.js:

chrome.app.runtime.onLaunched.addListener(function() {
  chrome.app.window.create('index.html',
    {width: 500, height: 300});
});

index.html的:

<!doctype html>
<html>
  <head>
    <script src="angular.js"></script>
    <script src="controller.js"></script>
  </head>
  <body>
    <div ng-app="test">
      <hello>Test</hello>
    </div>
  </body>
</html>

最后是controller.js:

var test = angular.module('test',[]);

test.directive('hello', function() {
  return {
    restrict : 'E',
        template : '<div>WHY ISNT THIS WORKING</div>',
        replace: true,
  };
})

這是生成的應用程序: 在此處輸入圖片說明

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM