0

そのため、ユーザーが使用しているquestionNumberに応じて動的に#paneldivに読み込まれるhtmlがあります。これはすべてのコードではなく、私が思うすべての関連コードです。とにかく、<input>getはページにロードされますが、実際には何もしません。ここで何が欠けていますか?questionNumber === 1の場合も同じ問題があり、バインドされた変数は次のように表示されます{{variable}}

var readingController = function (scope, Romanize){
        scope.usersRomanization;
        //alert(scope.usersRomanization);
}

var app = angular.module('Tutorials', ['functions', 'tutorials']).controller('getAnswers', function ($scope, $element, Position, Romanize) {
$scope.sectionNumber = Position.sectionNumber;
if ($scope.sectionNumber === 0){
    $('#panel').html('<div ng-controller="readingController"><input ng-model="usersRomanization"></input></div>');
    readingController($scope, Romanize);
}

<body ng-controller="getAnswers">
    <div  id="panel">
    </div>
</body>
4

1 に答える 1

1

HTMLをDOMに追加する場合は、Angularに$compileするように指示する必要があります。これは、ディレクティブで実行する必要があります。注入してから$compile、次のようなことを行う必要があります。

var content = '<div ng-controller=...></div>';
var compiled = $compile(content)(scope);
// then put the content where you want

または、ディレクティブを定義してtemplate、Angularによって自動的にコンパイルされるを使用することをお勧めします。

他の選択肢は、ng-include(ロードされたコンテンツをコンパイルする)とng-switchで、テンプレートをHTMLに入れることができます。

于 2013-03-15T17:19:58.540 に答える