繁体   English   中英

ng模型在角度范围

[英]scope of ng-model in angular

这是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);
  }

我对angular还是很陌生,想知道它背后是什么角度的构造,或者为什么会这样。

在第二个代码中,您已声明函数'changeHeight',并在其中设置了'myText'的值。 但在页面上您尚未调用'changeHeight'函数,因此不会调用该函数,并且不会设置'mytext'的值。 尝试使用ng-init或ng-click或ng-change a / c到情境在页面上调用函数'changeHeight'。

首先:ng-model主要用于表单元素,基本上是一种豪华版本,使用onchange事件从表单到模型获取价值,以及使用$watch从模型到表单元素获取价值。 您只需要在屏幕上显示一个值就不需要它。

第二:您不应在控制器中修改文档或DOM。 这就是指令的责任(如果是文档元素的修改,则可能是服务)。

关于第二个代码块,我不知道为什么在changeHeight方法中有一个“ function frame() ”。 而且代码是不完整的,您永远不会真正调用设置$scope.myTextframe()方法。

请提供完整的代码以获得更好的帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM