Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ssh/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
范围变量未更改-angularjs_Angularjs - Fatal编程技术网

范围变量未更改-angularjs

范围变量未更改-angularjs,angularjs,Angularjs,范围变量SelectedPage未更新。 有一个用于分页的ulli,它有一个下拉菜单&然后是一个next按钮。用户可以通过单击按钮或选择“选择”中的选项转到页面。 单击“下一步”或在下拉列表中选择2时,我希望$scope.SelectedPage的值更改为2。但它始终保持1 HTML: <ul> <li> <select ng-model="SelectedPage" ng-change="ShowPageResult()"> &l

范围变量
SelectedPage
未更新。 有一个用于分页的
ulli
,它有一个下拉菜单&然后是一个next按钮。用户可以通过单击按钮或选择“选择”中的选项转到页面。 单击“下一步”或在下拉列表中选择2时,我希望
$scope.SelectedPage
的值更改为2。但它始终保持1

HTML:

<ul>     
 <li>
   <select ng-model="SelectedPage" ng-change="ShowPageResult()">
     <option value="1">1</option>
     <option value="2">2</option>
   </select>
 </li>
 <li ng-click="SelectedPage = SelectedPage + 1;ShowPageResult();"><a href=" #">Next</a></li> 
</ul>
编辑 页面加载后,单击“下一步”,编号递增。 现在在下拉列表中选择一个值,然后单击下一步。它现在附加“1”而不是递增。
我希望这有助于理解这个问题。

这里是一个工作示例,您可以参考plunker

请根据您的要求来参观这个。 我们开始(第二次尝试):

为了让代码按您的方式工作,我做了最小的更改,一般来说,Angular是关于将视图与模型/控制器分离,因此鼓励您将逻辑与视图分离。但无论如何,这是你想要的方式:

<div ng-app="app" ng-controller="ctrl">
<ul>
    <li>
        <select ng-model="SelectedPage" ng-change="ShowPageResult();">
            <option value="1">1</option>
            <option value="2">2</option>
        </select>
    </li>
    <li ng-click="SelectedPage = (SelectedPage * 1+1);ShowPageResult();"><a href=" #">Next</a>

    </li>
    <li>Selected Page : {{SelectedPage}}</li>
</ul>
</div>

当我在下拉列表中选择1并单击Next(下一步)时,警报中的值应为2。下拉列表中的值也应该改为2。这就是我试图用我的代码做的。在你的例子中,情况并非如此。你需要在不同的链接上进行类似的访问。你能告诉我为什么这不起作用吗=“SelectedPage=SelectedPage+1因为绑定在select上的模型是一个整数,并且您正在增加该值,相反,选项标记中的值是字符串just refer link。。有道理。那么,如何在html中增加变量值呢。但是,文档说,它是递增的,而不是追加-我会使用你的方法,但我还有其他按钮,如first、prev和last以及next。所以,为了最小化代码,我想在html本身中增加它。此文档说明是这样,但不起作用-docs.angularjs.org/api/ng/directive/ngClick。请检查一下我的小提琴
var app = angular.module('plunker', []);

app.controller('MainCtrl', function($scope) {
  $scope.name = 'World';
  $scope.arr = ["0","1"];
  $scope.ShowPageResult = function () {
       alert($scope.SelectedPage); //always prints 1        
    } 
});
<div ng-app="app" ng-controller="ctrl">
<ul>
    <li>
        <select ng-model="SelectedPage" ng-change="ShowPageResult();">
            <option value="1">1</option>
            <option value="2">2</option>
        </select>
    </li>
    <li ng-click="SelectedPage = (SelectedPage * 1+1);ShowPageResult();"><a href=" #">Next</a>

    </li>
    <li>Selected Page : {{SelectedPage}}</li>
</ul>
</div>
var app = angular.module("app", []);
app.controller("ctrl", function ($scope) {
    $scope.SelectedPage = 1;
    $scope.ShowPageResult = function () {
        console.log($scope.SelectedPage);
    } 
});