A.html
<div ng-bind-html="htmlElement()"></div>
Controller.js
$scope.htmlElement = function(){
var html = '<input type="text" ng-model="myModel" />';
return $sce.trustAsHtml(html);
}
Pero cuando quiero obtener el valor de la entrada de texto usando
alert($scope.myModel);
Dice que myModel no está definido. Solo sucede cuando agrego el ingreso de texto dinámicamente.
¿Cómo puedo obtener el valor de esa entrada de texto?
0
Robin Sun
2 sep. 2014 a las 09:51
3 respuestas
La mejor respuesta
Le sugiero que use esta manipulación DOM con la directiva en su lugar.
En tu controllers.js
:
app.directive("myHtml", function(){
return {
restrict: 'E',
template: '<input type="text" ng-model="myModel" />',
link: function(scope, attr){
scope.myModel = 'Input text here';
}
}
});
app.controller('listCtrl', function($scope) {
$scope.showInputText = function(){
alert($scope.myModel);
}
});
En tu HTML
:
<div ng-controller="myCtrl">
<my-html><my-html>
Your input: {{myModel}}
<button ng-click="showInputText()">Show Input Text</button>
</div>
3
khemry
2 sep. 2014 a las 06:43
Intente esto, http://plnkr.co/edit/A4HRCuTbJt21wEngH9HX?p=preview:
<div ng-bind-html="htmlElement()" compile-element></div>
....
module.directive("compileElement", function($compile){
return {
link: function(scope,element) {
scope.$watch(function(){
return element.html();
}, function() {
$compile(element.contents())(scope);
});
}
};
});
0
Noypi Gilas
2 sep. 2014 a las 12:49
Intente agregar el siguiente CSS a su elemento / div
white-space: pre-wrap;
word-wrap: break-word;
0
dam1
30 dic. 2014 a las 09:43
Preguntas relacionadas
Nuevas preguntas
javascript
Para preguntas sobre la programación en ECMAScript (JavaScript / JS) y sus diversos dialectos / implementaciones (excepto ActionScript). Incluya todas las etiquetas relevantes en su pregunta; por ejemplo, [node.js], [jquery], [json], etc.