如何在 angularjs 中只调用一个 ng-model
How to call only one ng-model in angularjs
首先,我只想对我令人困惑的问题表示抱歉。我真的不知道我的问题的正确标题是什么,因为我是 angularjs 的新手。顺便说一句,我正在使用 angularjs 制作一个门户网站,我的门户网站的功能之一是 post 反馈和回复反馈 !当网站的访问者将 post 反馈时,管理员将对其进行审核并对该反馈发表评论。例如,已经有 10 个 post,所以我使用 mysql 查询 来显示它。像这样:
$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'].">
";
}
在上面的代码中,它工作得很好,它显示了所有已批准的 post,但是我在 中输入评论时遇到问题 fbRelpy model
。当我开始打字时,所有 textboxes
都填满了我输入的内容!我的意思是,如果我在第一个文本框中输入,它也会应用所有文本框中的文本。可能是因为它们拥有所有 ng-model
值。我应该怎么办?提前致谢。请理解我的问题标题。
您遇到此问题是因为您对每个评论输入都使用了相同的 ng-model。
可能的解决方案是为每个评论输入附加一个唯一的 ng-model。您可以通过使用您的标识符和 fb id 的组合来做到这一点。 ng-model='fbReply' + .$row['fb_id'].
问题是所有输入都具有相同的型号名称。您已经提供了不同的模型来区分它们。您可以使用 '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'].">
";
}
你必须创建一个 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'].">";
}
首先,我只想对我令人困惑的问题表示抱歉。我真的不知道我的问题的正确标题是什么,因为我是 angularjs 的新手。顺便说一句,我正在使用 angularjs 制作一个门户网站,我的门户网站的功能之一是 post 反馈和回复反馈 !当网站的访问者将 post 反馈时,管理员将对其进行审核并对该反馈发表评论。例如,已经有 10 个 post,所以我使用 mysql 查询 来显示它。像这样:
$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'].">
";
}
在上面的代码中,它工作得很好,它显示了所有已批准的 post,但是我在 中输入评论时遇到问题 fbRelpy model
。当我开始打字时,所有 textboxes
都填满了我输入的内容!我的意思是,如果我在第一个文本框中输入,它也会应用所有文本框中的文本。可能是因为它们拥有所有 ng-model
值。我应该怎么办?提前致谢。请理解我的问题标题。
您遇到此问题是因为您对每个评论输入都使用了相同的 ng-model。
可能的解决方案是为每个评论输入附加一个唯一的 ng-model。您可以通过使用您的标识符和 fb id 的组合来做到这一点。 ng-model='fbReply' + .$row['fb_id'].
问题是所有输入都具有相同的型号名称。您已经提供了不同的模型来区分它们。您可以使用 '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'].">
";
}
你必须创建一个 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'].">";
}