Я пытаюсь улучшить этот JsFiddle код, добавляя угловые маршруты, контроллеры, услуги и т.д. http://jsfiddle.net/ProLoser/bp3Qu/light/AngularJS сфера выпуск
Проблема я столкнулся это со следующими строками кода
function FormBuilderCtrl(){
var scope = this;
....
Когда я попытался преобразовать выше этой новой скрипкой http://jsfiddle.net/uhsarp/MdvQk/1/
function FormBuilderCtrl($scope){
...
теперь все ломается. Я пытаюсь понять, что такое var scope = this и почему передача области функции не работает.
Кроме того, все директивы Angular делятся на ng: вместо ng- (пример: ng: switch вместо ng-switch). Они эквивалентны? Благодарю.
Update:
Я последовал совету от ответов и модернизировал Угловое версию. Я также удалил var scope = this и сразу ввел область. http://plnkr.co/edit/Clr2T9V8J0z3oxW2HXur?p=preview
Единственная проблема сейчас я сталкиваюсь в том, что всякий раз, когда я изменить тип поля из «текста» до «радиокнопок», я получаю сообщение об ошибке (строка 45 в script.js в указанной выше странице plukr)
TypeError: Cannot call method 'indexOf' of undefined
Я проверил код, но, похоже, не смог обнаружить проблему.
Да нг: переключатель и ng-переключатель - это два разных способа использования одной и той же директивы. –
Спасибо, Эран. – user6123723
Похоже, вы используете Angular 0.10.5, jsFiddle поддерживает 1.0.2, 1.0.3 и 1.1.1. Я изменил с вашей версии Angular на более новую версию, и некоторые вещи все еще были сломаны, но материал начал работать. Я собираюсь сделать обоснованное предположение и сказать, что «var scope = this» был более старым методом Angular для получения области видимости, а новый метод - передать его в качестве параметра. Вот почему ваш код будет испорчен, так как он будет использовать неподдерживаемые средства для получения правильной области. –