Javascript 编辑和保存不起作用

Javascript 编辑和保存不起作用,javascript,angularjs,angularjs-directive,Javascript,Angularjs,Angularjs Directive,我在AngularJS中创建了一个应用程序,其中包含编辑、保存和取消选项,但问题是当我单击编辑时,我没有获得编辑和保存的值 文本字段和下拉列表通过ng transclude 谁能告诉我一些解决方法吗 HTML <div ng-controller="LocationFormCtrl"> <h2>Editors</h2> <span ng-repeat="location in location"> <div clas

我在AngularJS中创建了一个应用程序,其中包含编辑、保存和取消选项,但问题是当我单击编辑时,我没有获得编辑和保存的值

文本字段和下拉列表通过
ng transclude

谁能告诉我一些解决方法吗

HTML

<div ng-controller="LocationFormCtrl">
    <h2>Editors</h2>
    <span ng-repeat="location in location">
    <div class="field">
        <strong>State:</strong>
        <div click-to-edit="location.state"><input ng-model="view.editableValue"/></div>
    </div>
    <div class="field">
        <strong>City:</strong>
        <div click-to-edit="location.city"><select ng-model="view.editableValue" ng-options="loc.city for loc in location"></select></div>
    </div>
    <div class="field">
        <strong>Neighbourhood:</strong>
        <div click-to-edit="location.neighbourhood"><input ng-model="view.editableValue"/></div>
    </div>
    <h2>Values</h2>
    <p><strong>State:</strong> {{location.state}}</p>
    <p><strong>City:</strong> {{location.city}}</p>
    <p><strong>Neighbourhood:</strong> {{location.neighbourhood}}</p>
    <hr>
    </span>
</div>

编辑
状态:
城市:
邻里:
价值观
状态:{{location.State}

城市:{{location.City}

邻里:{{location.neighbourth}



如何创建一个ngClick函数,在div中添加输入元素和以前的值

<div class="newInput" ng-show="hidden">
   <label> {{ inputValue }} </label>
</div>

<div class="newInput" ng-show="!hidden">
  <input ng-model="inputValue" />
</div>

这里有

你真的不知道为什么,我只是在玩代码,但似乎在工作,至少在文本字段中,使用
ng if
而不是
ng show
/
ng hide

如果我找到原因,我会更新我的答案

更新:我想这就是您要找的:

不同之处在于,我不是在保存时保存值,而是在取消时恢复更改,这由于角度双向数据绑定而更容易


因此,我还删除了view.editableValue
ng model
指令,并像通常一样使用字段。

转换和隔离作用域的工作方式与您可能认为的不同。你可以在这里了解更多

如果你做出了改变,你已经看到了不同

<div click-to-edit="location.state"><input ng-model="location.state"/></div>


您能用fiddleSure中的上述示例向我展示一下吗。试着这样做:看@emilio已经解决了文本字段的问题…现在问题出在select上,所以有什么解决办法吗当然,但不幸的是,我现在没有时间详细说明。这个怎么样,在这里,我可以访问transclude范围内的控制器变量值。我建议创建隐藏字段/输入,并在单击某些按钮后显示它们(如我在示例中所做的)。这应该不难。很好用。。。。。但是为什么
$scope.selectableCities=[“旧金山”、“科尔兰”]因为如果您从正在编辑的位置数组中获取选择选项,那么当您更改一个位置时,与所选的位置相同,并且选择选项变为:旧金山·旧金山(例如)。这就是为什么需要静态存储它们。
<div click-to-edit="location.state"><input ng-model="location.state"/></div>