У меня есть сложная структура модели (подробно описано ниже), и каждый раз, когда я хочу использовать ng-model
, мне нужно получить доступ к следующим свойствам: user.communications.inGame.selected
.AngularJs создает область действия от модели
Я хотел бы иметь возможность быть в состоянии сферы области и быть в состоянии использовать внутренний selected
без всех префиксов (просто написание selected
), так же, как я могу с ng-repeat
.
ng-repeat
не подходит здесь, поскольку каждое сообщение имеет разные свойства внутри него, и я не хочу иметь гигантский ng-switch
внутри него.
Структура данных
$scope.user.communications = {
inGame: {
name: 'inGame',
selected: true,
image: 'assets/img/communication/ingame.png'
},
teamspeak: {
name: 'teamspeak',
selected: true,
image: 'assets/img/communication/ts.png',
serverAddress: '',
port: '',
nickname: '',
password: '',
channel: '',
channelPassword: '',
autoBookmarkAdd: ''
},
skype: {
id: 3,
name: 'skype',
selected: true,
image: 'assets/img/communication/skype.png',
username: ''
},
ventrilo: {
name: 'ventrilo',
selected: true,
image: 'assets/img/communication/ventrilo.png',
serverName: '',
port: '',
serverPassword: '',
channelName: '',
channelPassword: ''
}
};
Возможно, напишите вашу собственную директиву? Что-то вроде 'ng-with', а затем do' ng-with = "user.communications.inGame" 'Не уверен, что это сработает для вас или нет, поскольку это будет означать, что тогда шаблон должен быть в директиве. Только идея. –
Я хочу получить тот же эффект, что и ng-repeat, просто не повторяя, Надеюсь найти встроенное решение, иначе я мог бы попробовать реализовать один –
. Думаю, вам понадобится хотя бы один префикс. – kubuntu