Angular 的模型不起作用
Angular ng-model don't work
我正在尝试用 ng-models 的输入替换文本中的特定字符串。我使用了以下代码:
inlinetext.replace(buffer[x], '<input ng-model="singleQuestion.inlines[' + x + '].checkAnswer" type="text">');
它按预期在视图中呈现 HTML 输入字段:
<input ng-model="singleQuestion.inlines[0].checkAnswer" type="text">
但是 ng-model 不会更新模型。实际上,我已经尝试在 HTML 视图中对同一段代码进行硬编码,并且效果很好。所以它一定是 angular 渲染视图的方式。
我的目标是显示文本段落,其中特定单词被输入替换(使用 ng-model 属性)。问题是 Angular 不会编译您通过 .replace() 函数查看的任何内容。
有人知道怎么做吗?
我终于想通了。这是用 Angular 编译元素替换字符串的完整代码,以备不时之需。
<script>
var testApp = angular.module('testApp', []);
testApp.directive('dynamic', function ($compile) {
return {
restrict: 'A',
replace: true,
link: function (scope, ele, attrs) {
scope.$watch(attrs.dynamic, function(html) {
ele.html(html);
$compile(ele.contents())(scope);
});
}
};
});
testApp.controller('PhoneListCtrl', function ($scope) {
// Initializace text
var inlinetext = 'Lorem ipsum dolor form sit amet, consectetur adipiscing elit. Vivamus in form ultricies ipsum. Quisque finibus lacus neque, sed tempor lectus form gravida nec. Nam egestas dui vel elit lacini';
// Replace string and bind it to directive
$scope.html = inlinetext.replace('form', '<input type="text" ng-model="demo">');
});
</script>
这是result
我正在尝试用 ng-models 的输入替换文本中的特定字符串。我使用了以下代码:
inlinetext.replace(buffer[x], '<input ng-model="singleQuestion.inlines[' + x + '].checkAnswer" type="text">');
它按预期在视图中呈现 HTML 输入字段:
<input ng-model="singleQuestion.inlines[0].checkAnswer" type="text">
但是 ng-model 不会更新模型。实际上,我已经尝试在 HTML 视图中对同一段代码进行硬编码,并且效果很好。所以它一定是 angular 渲染视图的方式。
我的目标是显示文本段落,其中特定单词被输入替换(使用 ng-model 属性)。问题是 Angular 不会编译您通过 .replace() 函数查看的任何内容。
有人知道怎么做吗?
我终于想通了。这是用 Angular 编译元素替换字符串的完整代码,以备不时之需。
<script>
var testApp = angular.module('testApp', []);
testApp.directive('dynamic', function ($compile) {
return {
restrict: 'A',
replace: true,
link: function (scope, ele, attrs) {
scope.$watch(attrs.dynamic, function(html) {
ele.html(html);
$compile(ele.contents())(scope);
});
}
};
});
testApp.controller('PhoneListCtrl', function ($scope) {
// Initializace text
var inlinetext = 'Lorem ipsum dolor form sit amet, consectetur adipiscing elit. Vivamus in form ultricies ipsum. Quisque finibus lacus neque, sed tempor lectus form gravida nec. Nam egestas dui vel elit lacini';
// Replace string and bind it to directive
$scope.html = inlinetext.replace('form', '<input type="text" ng-model="demo">');
});
</script>
这是result