这是html部分......
<body ng-controller="homeController">
<div id="happyValentines" ng-model="myText"> {{ myText }}
我不知道为什么会这样......
$scope.myText = "fksdm kdsmfk msldfkm kdfm ksdmf lsmdflm ";
$scope.changeHeight = function(elem) {
var body = document.body;
var height = 0;
var right = 0;
var opacity = 0; ...
但这不是......
$scope.changeHeight = function(elem) {
var body = document.body;
var height = 0;
var right = 0;
var opacity = 0;
body.style.opacity = 0;
var index = 0;
var str = "fksdm kdsmfk msldfkm kdfmksdmf lsmdflm ";
function frame() {
index += 2;
$scope.myText = str.substr(0, index);
height += 4;
if (right < 60) {
right += 1;
elem.style.marginRight = right + "px";
}
opacity += .01;
elem.style.height = height + "px";
elem.style.opacity = opacity;
body.style.opacity = opacity;
if (opacity >= 1) {
clearInterval(id);
$scope.addButtons();
// document.createElement....
}
}
var id = setInterval(frame, 30);
}
我对角度很新,想知道这背后是什么角度构造,或者为什么会这样。
答案 0 :(得分:1)
在第二个代码中,您声明了函数'changeHeight',并在其中设置了'myText'的值。但是在页面上你还没有调用'changeHeight'函数,因此它不会调用该函数,并且不会设置'mytext'的值。 尝试使用ng-init或ng-click或ng-change a / c在页面上调用函数'changeHeight'。
答案 1 :(得分:0)
首先:ng-model主要用于表单元素,基本上是使用onchange
事件从表单到模型获取值的豪华版本,以及从$watch
获取值的function frame()
表单元素的模型。您不需要它只是在屏幕上显示值。
第二:您不应该修改控制器中的文档或DOM。这是指令的责任(或者如果是文档元素修改则可能是服务)。
关于您的第二个代码块,我不明白为什么您在changeHeight
方法中有“frame()
”。并且代码不完整,您实际上从未调用设置$scope.myText
的{{1}}方法。
请提供完整的代码以获得更好的帮助。