2015-02-10 2 views
1

У меня есть приложение, в котором значение элемента html происходит от сервера в качестве шаблона. Я пытаюсь назначить этот шаблон, который в основном представляет собой строку, и получить переменные в шаблоне, привязанные к контроллеру, но угловые не связывают переменные.Angularjs: значение Html из строковой переменной

Чтобы быть более ясным, у меня есть текстовое поле, как этот

<textarea class="someclass" placeholder="${fbPostData.name}" 
      ng-model="fbPostMessage"> 
    </textarea> 

В мой контроллер, я назначу fbPostMessage быть:

$scope.fbPostMessage = "Join {{userFirstName}}. Subscribe today to have fun!" 

После этих шагов на мой взгляд, я не вижу переменные заменяются их значениями, userFirstName не заменяется его значением.

Я пробовал $compile и дал ошибку. Вероятно, он ожидает html-теги. Как я могу достичь того, чего хочу?

+0

Это действительно трудно, чтобы дать вам ответ от всего, что вы предоставили. Вместо этого я бы сказал: 1) убедитесь, что данные назначены в правильной области, вы можете сделать это, назначив что-то с постоянным значением '$ scope.test_value =" test ";' затем заменив 'ng-model = «test_value» '2) гарантирует, что угловой знает об обновлении, выполнив' $ scope. $ digest(); '(это должно быть последним средством) –

+0

Привет, я немного изменил вопрос, чтобы упростить его. Я в основном хочу анализировать и заменять переменные значениями. –

+0

Если вы хотите использовать как '$ compile', так и' ng-bind-html', этот [вопрос] (http://stackoverflow.com/questions/19726179/how-to-make-ng-bind-html-compile -angularjs-code) может помочь – Rebornix

ответ

3

Вместо компиляции используйте интерполяцию, чтобы скомпилировать ее перед ее отображением.

$scope.userFirstName = "Hello"; 
$scope.fbPostData={ 
    name : "Placeholder" 
} 
$scope.fbPostMessage = $interpolate("Join {{userFirstName}}. Subscribe today to have fun!")($scope) 

Попробуйте этот пример

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

+0

Хотя я искал решение, которое связывает переменные внутри строки, наблюдать за переменными и обновлять строку, когда их значения изменяются, это тоже хорошо. Поэтому я принимаю этот ответ. –

Смежные вопросы