2016-06-21 70 views
0

我正在嘗試構建一個簡單的自定義指令,但它不斷向我發送錯誤消息。我已將我的示例代碼包含在下面的jsFiddle鏈接中。任何人都可以幫助我在哪裏我錯了。無法在angularjs中執行自定義指令

[https://jsfiddle.net/sridharspeaks/65vnj4dz/][1] 

感謝, 斯里達爾

+0

你鏈路斷開時 – akazemis

+0

我能打開它 –

+0

謝謝塔馬斯。我無法在編輯器中正確設置鏈接,我正在嘗試。人們太快而且樂於將問題加下去,而實際上卻試圖解決一個真正的問題。我將繼續編輯它以使其成爲適當的鏈接。 –

回答

1

這是固定的plunker:

http://plnkr.co/edit/KTFFLc0QdmunQ4i8AT8o?p=preview

我覺得這是有

  1. 您的指令和控制器名稱的大小寫問題(我把所有的都寫成小寫,不要有太多的時間Y)
  2. 你沒有使用ng-controller="mycontainercontroller"告訴角度與控制器使用
  3. 不要指令注入$範圍僅在控制器的指令:

HTML:

<head> 
    <script src="http://code.angularjs.org/1.2.1/angular.js"></script> 
    <script src="script.js"></script> 
</head> 

<body> 

    <div ng-controller="mycontainercontroller"> 
    <mycontainer></mycontainer> 
    </div> 
</body> 

和JS:

angular.module('myApp', []). 
directive('mycontainer', function() { 
    return { 
    restrict: 'E', 
    scope: {}, 
    controller: 'mycontainercontroller', 
    template: '<div><input ng-model="container"></div><div>output : {{container}}</div>' 
    } 
}).controller('mycontainercontroller', ['$scope', function($scope) { 
    $scope.container = 123; 
}]) ; 
+0

Alainlb,謝謝你的幫助。我相信ng-controller在html中不是必需的,因爲它已經嵌入了自定義指令。 –

1

有兩個問題。一種是與小提琴,腳本必須窗口前負荷運行,所以設置如下:

enter image description here

其次,不注射$scope到指令。您只能訪問link函數中的指令範圍。

更新小提琴:https://jsfiddle.net/65vnj4dz/5/

+0

太棒了。雖然從下面的答案我可以檢查它在plunkr中工作,但我無法在jsFiddle中執行它。感謝您展示這一點。 –