javascript - 为动态创建的 HTML 元素使用 ng-model
问题描述
我已经动态创建了 div 元素,其中有一个按钮元素,所以我想通过 ng-model 使用它的值,但值没有到来。
我的代码是:
var url = "/api/chatBot/chatBot";
$http.post(url,data)
.success(function(data){
$scope.messageToShow = data.messageText;
$scope.forButtons = data.actions;
console.log("Message ::", $scope.messageToShow);
console.log("actions ::", $scope.forButtons[1].value);
var x='';
for(var i = 0 ; i<data.actions.length; i++) {
x= x + "<a ng-model = 'buttons' class = 'btn btn-outline btn-primary btn-xs btn-rounded pull-right' value ="+$scope.forButtons[i].value+" ng-click = 'submitForButton()'>"+$scope.forButtons[i].text+"</a>"
}
var newEle = angular.element("<div class='message' ><a class='message-author' ng-model='author'> Bot </a>\
<span class='message-content' ng-model='messageContent'>"+$scope.messageToShow+"\
"+x+"</span> </div><br />");
var target = document.getElementById('messageDiv');
var temp = $compile(newEle)($scope);
angular.element(target).append(temp);
$scope.message = "";
}) .error(function(){
console.log("ERROR in bot controller");
})
}
所以当我在做
console.log($scope.buttons) // its coming undefined.
所以我在哪里做错了。
谢谢
解决方案
您应该$scope.buttons = ''
事先在您的控制器上声明,之后,您可以将其用作 ng-model
你也可以试试ng-value ="+$scope.forButtons[i].value+"
推荐阅读
- javascript - VueJs 递归无限 v-for 循环
- python-3.x - 如何在 conftest.py 中运行 tearDown 和 setUp
- php - ffmpeg concat 仅在浏览器中的第一个剪辑后丢失音频,音频在 vlc 等播放器上播放良好
- vb.net - 如果 GetElementById 函数返回 Nothing,如何单击“按钮”
- php - Laravel Eloquent 一对多关系不起作用
- c# - Newtonsoft JSON 错误 - 指向本地机器而不是服务器
- c# - 尝试在 PDF 中解压缩流时出错
- kubernetes - 如何将数据复制到 k8s 持久卷?
- python-3.x - 运行 python convert_from_path pdf2image 的 Ubuntu-18 上的 PdfInfoNotInstalledError
- ios - 'mapView(_:viewFor:)' 的重新声明无效