ng-click在$ window.open中不起作用

时间:2015-08-06 13:00:15

标签: angularjs

我使用ng-click选项生成标记,但是ng-click没有调用相应的函数。以下是代码......

1)Javascript

var buffer ='';
buffer += "<div id='Content' x-ng-controller='HomePageMainCntrl'>";
                     buffer += "<table>";
                     for(i=0;i<data.newsArchiveList.length;i++)
                     {
                        //alert(data.newsArchiveList[i].title);
                         buffer += "<tr>";
                         buffer += "<td align=left >"+data.newsArchiveList[i].createDate+"</td>";
                         buffer += "<td>&nbsp;</td>";
                         buffer += "<td align=left><a href='' ng-click=showNewsItem(4100); title='Click for more detail'>"+data.newsArchiveList[i].title+"</a>";
                         buffer += "</td>";
                         buffer += "</tr>";
                     }
                     buffer += "</table>";
                     buffer += "</div>"

*缓冲输出是:::

<div class='p3rMiddleBodyCommon' id='Content' x-ng-controller='HomePageMainCntrl'>
    <table>
        <tr>
            <td align=left>2015-07-31</td>
            <td>&nbsp;</td>
            <td align=left><a href='' ng-click=showNewsItem(4100); title='Click for more detail'>Testing_Cma_Admin</a></td>
        </tr>

        <tr>
            <td align=left>2015-04-17</td>
            <td>&nbsp;</td>
            <td align=left><a href='' ng-click=showNewsItem(4100); title='Click for more detail'>PLEASE READ - TEST</a></td>
        </tr>
    </table>
</div>

*

                     var myWindow1 = $window.open("", "News Archive", 'toolbar=0,scrollbars=1,location=0,status=0,menubar=0,resizable=1,width=650, height=550,left = 300,top=100');
                     myWindow1.document.write(buffer);


$scope.showNewsItem  = function(id)
    {
        alert('showNews Item called '+id);
}

打开新窗口,但没有调用ng-click功能。 请帮帮我

2 个答案:

答案 0 :(得分:1)

您的语法不正确。您需要使用此ng-click=showNewsItem(4100);替换此ng-click="showNewsItem(4100)"

ng-click始终需要",就像所有angularJS属性一样

修改:

你有一些;不应该在你的锚中间......我想我已经解决了所有错误。

var buffer ='';
buffer += "<div id='Content' x-ng-controller='HomePageMainCntrl'>";
                     buffer += "<table>";
                     for(i=0;i<data.newsArchiveList.length;i++)
                     {
                        //alert(data.newsArchiveList[i].title);
                         buffer += "<tr>";
                         buffer += "<td align='left' >"+data.newsArchiveList[i].createDate+"</td>";
                         buffer += "<td>&nbsp;</td>";
                         buffer += "<td align='left'><a href='' ng-click='showNewsItem(4100)' title='Click for more detail'>"+data.newsArchiveList[i].title+"</a>";
                         buffer += "</td>";
                         buffer += "</tr>";
                     }
                     buffer += "</table>";
                     buffer += "</div>"

答案 1 :(得分:0)

更改为:

buffer += '<td align=left><a href="" ng-click="showNewsItem(4100)"; title="Click for more detail">'+data.newsArchiveList[i].title+'</a>';
                     buffer += '</td>';