я столкнулся вопрос о поведении mdl-textfield
«секлея-TextField не принимая ngModel изменения во внимание
На рисунке plnkr, выполните следующие действия:
- нажмите на„группы работают“
- нажмите «копировать» по одному объекту
- Посмотрите на самый конец, появилось новое текстовое поле с ассоциированным с ngModel (angular.copy), но поведение текстового поля странно, даже если есть значение, метка не плавает но если вы щелкните в текстовом поле , он плавает, как ожидалось. Если вы измените поле, поведение останется, но если вы оставите его без каких-либо изменений, метка вернется с наложением.
http://plnkr.co/edit/MUI2iBslIH9jd4fgEQPL?p=preview
ngView
содержания
<div data-ng-controller="MainCtrl">
<section data-ng-repeat="fo in foo">
<div class="mdl-textfield mdl-js-textfield mdl-textfield--floating-label">
<input class="mdl-textfield__input" type="text" id="sample1" data-ng-model="fo.bar"/>
<label class="mdl-textfield__label" for="sample1">{{fo.bar}}</label>
<span ng-if="$last" ng-init="update()"></span>
</div>
<button ng-click="focopy(fo)">Copy</button>
</section>
<div data-ng-show="datacopy.edit" class="input-field">
<input type="text" id="ex1" data-ng-model="datacopy.bar" />
<label for="ex1">label</label>
</div>
</div>
Углового модуль
var app=angular.module('plunker', ['ngRoute'])
app.config(function($routeProvider){
$routeProvider
//Root URL
.when('/',{template:'<p>Coucou</p>'})
.when('/groups',{templateUrl:'groups.html'})
.when('/groupsnotworking',{templateUrl:'groupsnotworking.html'})
});
app.controller('MainCtrl', function($scope,$timeout) {
$scope.foo = [
{bar: 'world'},{bar:'toto'},{bar:'toto'}
];
$scope.groups=$timeout(function(){
$scope.groups=$scope.foo
},1000);
$scope.update=function(){
componentHandler.upgradeAllRegistered();
};
$scope.datacopy={};
$scope.focopy=function(data){
$scope.datacopy=angular.copy(data);
$scope.datacopy.edit=true;
};
});
Надеется, что это достаточно ясно. Я попытался отправить, что на GitHub материала конструкции облегченного думая, что это была ошибка, но я стартовал здесь ... Спасибо
Вы сделали все, что говорит MDL для использования с динамическими сайтами? Вы должны сообщить об этом, чтобы скомпилировать элементы, добавленные позже: http://www.getmdl.io/started/#dynamic –
Да, на plnker вы можете увидеть кнопку обновления, озаглавленную функцию «componentHandler.upgradeAllRegistered()». Во всяком случае, поведение текстового поля в порядке, если вы рассматриваете плавающую метку и анимацию подчеркивания. –
Я тестировал с материализацией, такое же поведение (меньше ошибок, поскольку нормальное поведение приходит, как только элемент управления получает фокус) –