如何在angularjs中只调用一个ng-model

时间:2017-03-09 01:35:52

标签: javascript php angularjs angular angularjs-ng-model

首先,我只想为我困惑的问题说抱歉。我真的不知道什么是我的问题的正确标题,因为我是angularjs的新手。顺便说一下,我正在使用angularjs创建一个webportal,我的webportal的一个功能是发布反馈并回复反馈!当网站的访问者发布反馈时,管理员将对其进行审核并对该反馈进行评论。例如,已经有10个帖子,所以我使用 mysql查询显示它。像这样:

# Edit the 'theme' 'plot.margin' parameter
facet.gmap2 <- facet.gmap + 
theme(plot.margin = unit(c(0.8, 0.4, -3.8, 0.3), "lines"))

# Add again the overall label with different font sizes 
facet.gmap.label2 <- ggplotGrob(facet.gmap2) 
facet.gmap.label2 <- gtable_add_grob(facet.gmap.label2, 
            grobTree(textGrob("M", x=0.05, 
                        y=0.85,just="left",  
                        gp = gpar(fontsize = 14, 
                        fontface = "bold")), 
                     textGrob("Some label", x=0.18, 
                        y=0.68, just="left",
                        gp = gpar(fontsize = 9,
                        fontface = "bold")) ), 
                     t=1, b=4, l=1, r=4)

# Save as PDF
pdf("facet.gmap.label2.pdf", 
      width=4.5,  
      height=3.6)
grid.draw(facet.gmap.label2)
dev.off()

在上面的代码中,它完美运行并显示已批准的所有帖子,但在plot.margin中键入注释时,我有问题。当我开始输入时,所有$query = "SELECT * FROM tblfb WHERE fb_status = 1 ORDER BY fb_id DESC"; ... while($row = mysqli_fetch_array($res)){ echo "<h5>".$row['fb_sender']."</h5> <p>".$row['fb_content']."</p> <input type='text' ng-model='fbReply' id=".$row['fb_id']."> "; } 都填充了我键入的内容!我的意思是,如果我输入第一个文本框,它也会在所有文本框中应用文本。也许是因为它们具有所有fbRelpy model值。我该怎么办?提前致谢。请理解我的问题标题

3 个答案:

答案 0 :(得分:1)

问题是所有输入都有相同的型号名称。你有不同的模型来区分它们。您可以使用'fbReply{{'+$row['fb_id']+'}}'。花括号将确保您将输入作为对象数组。

$query = "SELECT * FROM tblfb WHERE fb_status = 1 ORDER BY fb_id DESC";

while($row = mysqli_fetch_array($res)){
     echo "<h5>".$row['fb_sender']."</h5>
           <p>".$row['fb_content']."</p>
           <input type='text' ng-model='fbReply{{'+$row['fb_id']+'}}' id=".$row['fb_id'].">
          ";
}

答案 1 :(得分:0)

您正在解决此问题,因为您为每个评论输入使用了相同的ng-model。

可能的解决方案是为每个评论输入附加一个唯一的ng模型。您可以使用标识符和fb id的组合来实现。 ng-model='fbReply' + .$row['fb_id'].

答案 2 :(得分:0)

您必须创建一个ng-model数组,您必须在控制器中定义ng-model,如下所示

 fbReplay ={}

您的代码如下所示

$query = "SELECT * FROM tblfb WHERE fb_status = 1 ORDER BY fb_id DESC";
while($row = mysqli_fetch_array($res)){
echo "<h5>".$row['fb_sender']."</h5><p>".$row['fb_content']."</p>
       <input type='text' ng-model='fbReply['+$row['fb_id']+']' id=".$row['fb_id'].">";
}