将ng-model用于动态创建的HTML元素

问题描述 投票:0回答:2

我已经动态创建了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.

所以我做错了。

谢谢

javascript html angularjs
2个回答
0
投票

您应该事先在控制器上声明$scope.buttons = '',此后,您可以将其用作ng模型

您也可以尝试使用ng-value ="+$scope.forButtons[i].value+"


0
投票

您在哪里领奖?是ng-click ='submitForButton()'工作?

© www.soinside.com 2019 - 2024. All rights reserved.