angular / angular.js

AngularJS - HTML enhanced for web apps!
https://angularjs.org
MIT License
58.81k stars 27.5k forks source link

textarea placeholder bug in IE #7883

Closed tamtakoe closed 10 years ago

tamtakoe commented 10 years ago

IE (all versions) generate error because of EmptyTextNode if we use expression in textarea placeholder. It is on last versions of Angular (1.2x, 1.3x)

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

Error: invalid argument at interpolateFnWatchAction (http://geometria.local:8001/vendor/angular/angular.js:6838:15) at Scope.prototype.$digest (http://geometria.local:8001/vendor/angular/angular.js:12255:23) at Scope.prototype.$apply (http://geometria.local:8001/vendor/angular/angular.js:12520:13) at done (http://geometria.local:8001/vendor/angular/angular.js:8208:34) at completeRequest (http://geometria.local:8001/vendor/angular/angular.js:8416:7) at xhr.onreadystatechange (http://geometria.local:8001/vendor/angular/angular.js:8355:11) undefined

Narretz commented 10 years ago

placeholder has a few problems on IE. I think trying to fix this in core would leave too much room for messing stuff up for other browsers. Luckily, the placeholder still gets set, and there's even another workaround: instead of using placeholder, use ng-attr-placeholder. Then the error disappears.

tamtakoe commented 10 years ago

It work! Thank!

vko-online commented 10 years ago

I have big page, without any placeholder attrs somewhere, but still get

Error: invalid argument
at interpolateFnWatchAction

Hard to say where is problem, but it's thrown not only on placeholders, that's whole page below aa

    <link href="../../AngularModule/css/tiles.css" rel="stylesheet" />
    <script src="../../AngularModule/js/tiles.js"></script>
    <div id="loader" ng-controller="MetroController as metroCtrl">
    <div ng-include="'../../../AngularModule/views/Partials/ContextMenu.html'"></div>
    <ul ng-cloak gridster data-options="options" class="gridsterContext">
        <li gridster-item=""
            class="bwin gitem"
            item="item"
            ng-click="metroCtrl.goList(item)"
            ng-right-click="metroCtrl.setCurrentItem(item)"
            ng-repeat="item in Tiles track by $index"
            data-row="{{item.TileDefinition.PositionRow}}"
            data-col="{{item.TileDefinition.PositionColumn}}"
            data-sizex="{{item.TileDefinition.SizeX}}"
            data-sizey="{{item.TileDefinition.SizeY}}"
            id="{{item.Controller}}"
            title="{{item.Title}}">
            <div bindonce="" class="tile mini" ng-show="showOrHide(item, 11)">
                <div class="pic" bo-class="item.Images[0] + 'Mini'"></div>
            </div>
            <div bindonce="" class="tile normal" ng-show="showOrHide(item, 22)">
                <div class="title">{{item.Title}}</div>
                <div class="body">
                    <div class="pic" bo-class="item.Images[0] + 'Normal'"></div>
                    <div class="content">
                        <div class="contentTitle">{{item.Title}}</div>
                        <div class="contentText"></div>
                    </div>
                </div>
                <div class="info">
                    <div class="badge hide"></div>
                </div>
            </div>
            <div bindonce="" class="tile double" ng-show="showOrHide(item, 42)">
                <div class="title">{{item.Title}}</div>
                <div class="body">
                    <div class="pic" bo-class="item.Images[0] + 'Double'"></div>
                    <div class="content">
                        <div class="contentTitle">{{item.Tooltip}}</div>
                    </div>
                </div>
                <div class="info">
                    <div class="badge hide"></div>
                    <div class="badgeInfo hide"></div>
                </div>
            </div>
            <div bindonce="" class="tile large" ng-show="showOrHide(item, 44)">
                <div class="title">{{item.Title}}</div>
                <div class="body">
                    <div class="pic" bo-class="item.Images[0] + 'Large'"></div>
                    <div class="content">
                        <div class="contentTitle">{{item.Tooltip}}</div>
                        <div class="contentText">
                            <div data-ac-chart="item.Description"
                                 data-ac-data="data"
                                 data-ac-config="config"
                                 class="chart">
                            </div>
                        </div>
                    </div>
                </div>
                <div class="info">
                    <div class="badge hide"></div>
                    <div class="badgeInfo hide">12</div>
                </div>
            </div>
        </li>
    </ul>
    </div>
Narretz commented 10 years ago

@vko-online Can you try to track the problem down and then reopen a new issue?

fourmisz commented 9 years ago

I have same issue in IE11. I have tried to solve this error such as 'ng-attr-' but i couldn't. It only happens in IE.