angular.js - 請問在angular中定義directive後,createElement是必須的嗎?
伊谢尔伦
伊谢尔伦 2017-05-15 16:57:17
0
5
575

如下程式碼所示,定義了directive layoutHeader,依照我的理解,直接在html引用就可以了。
想問下,這裡的

document.createElement('layout-header'); 有什么作用?是必须的吗?

原程式碼如下:

angular.module('app').directive('layoutHeader', function () {
  return {
    restrict: 'E',
    scope: {},
    templateUrl: 'components/layout/header.html',
    controller: 'LayoutHeaderCtrl'
  };
});

document.createElement('layout-header');
伊谢尔伦
伊谢尔伦

小伙看你根骨奇佳,潜力无限,来学PHP伐。

全部回覆(5)
滿天的星座

這只是在做相容處理,ie8無法辨識自訂的元素,但是用js創建的反而可以辨識。

左手右手慢动作

document.createElement這是瀏覽器提供的js方法。可以用程式碼產生dom。
你直接在html引用就行了,不必要非用程式碼的方式創建。

给我你的怀抱

直接在html程式碼裡面使用就可以了。

仅有的幸福

這個是範例程式碼吧?

其實就是在 js 裡面創建一下這個 element 而已,在 html 直接寫是一樣的。

= = 其實有點好奇這是什麼入門教材。 。

巴扎黑

正如xiaohe 所說,是為了相容性而做的處理。
參考:http://www.oschina.net/translate/angularjs-ie-compatibility?print

如果你必需要用自定义元素标记,然后你必须采取以下步骤以确保IE8及之前版本都能用:

<!doctype html>
<html xmlns:ng="http://angularjs.org" id="ng-app" ng-app="optionalModuleName">
<head>
  <!--[if lte IE 8]>
    <script>
      document.createElement('ng-include');
      document.createElement('ng-pluralize');
      document.createElement('ng-view');
  
      // Optionally these for CSS
      document.createElement('ng:include');
      document.createElement('ng:pluralize');
      document.createElement('ng:view');
    </script>
  <![endif]-->
</head>
<body>
</body>

</html>
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板