Я работаю над веб-приложением, которое отображает приглашение, основанное на том, в каком поле пользователь находится в фокусе или нет. У меня есть несколько разных сценариев текста, которые я хочу отображать в этих разных точках.
То, что я хотел бы сделать, - отобразить данные области в тех строках, когда они отображаются. Сейчас все становится визуализированным как текст. Вот что я делаю. В представлении. (Игнорируйте мое плохое использование ng-init, я изменю его на контроллер.)
<div><p>Full Name</p><input placeholder="Name" name="personal.name" ng-model="personal.name" ng-model-options="{ updateOn: 'default blur' }" class="medium" type="text"/></div>
<div><p>Address</p><input class="long" type="text" ng-model="personal.address" ng-model-options="{ updateOn: 'default blur' }" placeholder="Address"/></div>
<div><p>Phone</p><input placeholder="Phone" ng-model="personal.phone" type="phone" ng-model-options="{ updateOn: 'default blur' }" only-digits/></div>
<div ng-init="script()">
<div ng-repeat="scripts in script">
<div ng-show="{{scripts.element}}" ng-hide="true" class="alert-bar">
<div class="wrapper">
<div ng-bind="scripts.script"></div>
</div>
</div>
</div>
</div>
и контроллер снова проигнорирует данные в этом, я сохраню это позже.
$scope.script = function(){
$scope.script = [
{
'element': "personal.name",
'script': '{{personal.name}} welcome to SOCU\ loan application.'
},
{
'element': "personal.address",
'script': '{{personal.name}}, please enter your full current address.'
},
{
'element': "personal.phone",
'script': '{{personal.name}}, please enter your current phone number, with the area code.'
}
];
}
Все работает, за исключением того, что я не могу получить название. Я знаю, что здесь я не должен использовать двойные фигурные скобки. Я также попытался получить данные непосредственно из области $, но я не вижу никаких личных данных.
Вы не можете делать привязки в своем контроллере, поскольку они предназначены только для просмотра.
Поскольку вы перебираете массив скриптов, вы можете просто получить доступ к элементам объекта,
{{scripts.element + scripts.script}}
Синтаксис руля должен работать для элемента div. Имеют структуру массива, как показано ниже,
$scope.script = [{
element: 'Person name',
script: 'Your script'
}];
В вашем div,
<div ng-init="script()">
<div ng-repeat="scripts in script">
<div ng-show="{{scripts.element}}" ng-hide="true" class="alert-bar">
<div class="wrapper">
<div>
{{ scripts.element + " , " + scripts.script }}
</div>
</div>
</div>
</div>
</div>