オンthe docs私は後で「何か」をコンパイルする例を見ました。angularjsコントローラと補間をコンパイルする
var $div = $('<div ng-controller="MyCtrl">{{content.label}}</div>');
$(document.body).append($div);
angular.element(document).injector().invoke(function($compile) {
var scope = angular.element($div).scope();
$compile($div)(scope);
});
私はjQueryのレディ機能のこのコードを追加しましたが、私は二つの問題があります。
まずエラーです: Argument 'MyCtrl' is not a function, got undefined
。
第二は、私はそれを作る方法がわからないということですcontent.label
作品!私はscope
に追加しましたが、動作しません。 content.label
のデータバインディングの動作を確認するためにコントローラをどのように呼び出す必要がありますか?
MY FINAL変更したコードは次のとおりです。
var app = angular.module('app',[]);
$(function(){
app.controller('MyCtrl',function($scope){
$scope.content = 123;
});
var $div = $('<div ng-controller="MyCtrl">{{content}}</div>');
$(document.body).append($div);
angular.element(document).injector().invoke(function($compile) {
var scope = angular.element($div).scope();
$compile($div)(scope);
});
});
をあなたのコードは上記のエラーを持っていますか? ( '$ scope.content'などは定義されていませんか?) - あなたはJSを含んでいますか? – tymeJV
編集を見てください。唯一のエラーは上に示したエラーです –
あなたはhtmlからそのラベルがコンテンツのプロパティであることを派生させることができます。 ($ scope.content.label = "something"または$ scope.content = {label: "something"};) – skubski