2013-07-03 49 views
0

Simplified我有以下問題,我想使用jquery函數.append()作爲Angular指令附加到div,它不起作用。我已經創建了一個jsfiddle來表達我的觀點。 http://jsfiddle.net/H26eg/2/js .append()Angular Directive not compiling

你有什麼想法爲什麼它不工作,我該怎麼辦?

我認爲這是與此相關的http://docs.angularjs.org/api/ng.$compile但不能老是看着辦吧..

非常感謝!

編輯: 我已經設法做到了上述使用兩個指令,從另一個像這樣調用一個指令:http://jsfiddle.net/H26eg/6/。問題是,如果不是一般指令中的常規template:"html_text",我再次使用templateUrl: "path_to_html_file"它不會編譯該指令。有人可以告訴我如何編譯templateUrl指令嗎?

+0

可能重複的[動態加載輸入盒確實nothining](http://stackoverflow.com/questions/15438092/dynamic-loaded-input-box-does-nothining) – Stewie

+0

在上面的鏈接中,它說'定義一個指令並使用一個模板,它將自動爲你編譯Angular.'這正是我所做的,但爲什麼當我用它添加到我的div時,Angular編譯我的指令.append()函數? –

+0

你的代碼只有很多錯誤的東西。在嘗試使用某些[教程](http://docs-angularjs-org-dev.appspot.com/tutorial)和[屏幕錄像](http://www.egghead.io/)之前,您可能需要嘗試一下編寫你自己的指令。 – Stewie

回答

1

Finaly使用控制器函數來完成它:

<div data-ng-controller="SetupController"> 

    <input data-ng-click="addAnpr('tabs_1','anpr')" type="button" value="Add"/> 

    <div id="tabs_1"> 

    </div> 

</div> 

..

app.controller('SetupController', function ($scope, $compile) { 
$scope.addAnpr = function (tab,drctv) { 
    var el = $compile('<'+drctv+'/>')($scope); 
    $('#'+tab).append(el); 
} 
}); 

app.directive('anpr', function() { 
    return{ 
     restrict: 'E', 
     templateUrl: 'app/partials/SETUP/anprTab.html' 
    } 
});