2

このようなことをしようとしています:

var data = {some: 'data'}

var subcomponent = $compile('<div component-' + componentName + ' ng-model="'+data+'"></div>')($scope);

$element.find('.container').html( subcomponent[0] );

エラーが発生します:

Error: [$parse:syntax] Syntax Error: Token 'Object' is unexpected, expecting []] at column 9 of the expression [[object Object]] starting at [Object]]

このデータをlinkスコープに取得しようとしています。データをディレクティブ スコープに渡す方法はありますか?

4

1 に答える 1

8

ng-model式は、値を設定できるプロパティでなければなりません。したがって、次のようなことをする必要があります。

$scope.data = {some: 'data'};// Set a property on the scope

/*Bind data to the ng-model*/
var subcomponent = $compile('<div component-' + componentName + ' ng-model="data"></div>')($scope);

あなたの場合、オブジェクトを文字列表現に変換する文字列にオブジェクトを追加しようとしています[object Object]。したがって、スコープにプロパティ名 (存在する/存在しない) を設定する必要があります。

于 2015-01-12T04:44:47.163 に答える